...特に、私の親フォルダは「タイル」と呼ばれます。このフォルダ内には100個以上のサブフォルダがあり、各サブフォルダにはそれぞれ独自のサブフォルダが格納されています。例としては、次のようになります。単一のファイルを選択されたサブフォルダにコピー
タイル/ zzOrtho1 /テクスチャ
タイル/ zzOrtho1 /地形に
タイル/ zzOrtho1/NAVデータ
タイル/ zzOrtho2 /テクスチャ
タイル/ zzOrtho2 /地形
...など
Tilesの親ディレクトリに 'water.dds'というファイルがありますが、それを 'テクスチャ'と呼ばれるすべての 'サブサブフォルダ'にコピーしたいのですが、他のフォルダはありません。
このバッチスクリプト(このフォーラムで見つかった)タイルのフォルダに置かれたとき、タイル親フォルダ内のすべてのフォルダとサブフォルダにファイルwater.ddsがコピーされます:「
@echo off
for /r "%CD%" %%f in (.) do (
copy "water.dds" "%%~ff" > nul
)
しかし、私の避難所ddsファイルが「テクスチャ」と呼ばれるすべての「サブ・サブフォルダ」にのみコピーされるように編集することができました。
これは、今では独自のサブフォルダ 'Tiles/water /'に含まれているddsファイルをTiles/Texturesフォルダにコピーしますが、これもまたどのように適応するのかわかりませんそれらのすべてのフォルダ構造内の1つの層より深い「テクスチャ」、およびコピーwater.dds ..
for /D %%x in (textures.*) do copy "water" %%x
は、誰もが親切に手伝ってくれるか?
ありがとうございました。ここで
for/Rは現在のディレクトリをルートとして使用するため、代わりに明示的にルートディレクトリを指定するので、 ''%CD% ''部分は必要ありません。 Windowsはdir./fileのパス/名前を大文字と小文字を区別せずに扱うので、 'if'に'/I'を追加することを強くお勧めします。さらに、 'if/I" %%〜nxG "==" textures "'のような引用符を使用してスペースや他の文字が問題を起こさないようにします。最後に、ソースファイル 'water.dds'への完全なパスを提供する必要があると思います... – aschipfl
ありがとう@aschipfl、編集中:)ファイルがバッチファイルが実行されるディレクトリにあるため、water.ddsファイルへのフルパスは必要ありません。 – Tecnogirl
素晴らしい!現在の作業ディレクトリはバッチスクリプトの親ディレクトリと同じではないことに注意してください。 '%CD%'は現在の作業ディレクトリを指します。 '%〜dp0.'はパスファイルコンテナを指しています... – aschipfl