web-dev-qa-db-ja.com

特定のパターンのファイルをWindowsの単一のフラットフォルダーに再帰的にコピーするにはどうすればよいですか?

DLLとPDBファイルのセットをフォルダーのセットから別のフォルダーに再帰的にコピーする必要があります。ターゲットフォルダーのフォルダー階層を再作成したくないです。 DOSコマンドなどのWindowsツール。

61
mickdelaney
mkdir targetDir
for /r %x in (*.dll, *pdb) do copy "%x" targetDir\

複数のファイルをコピーしていて、「はい」と答え続けたくない場合は、上記のコマンドの最後に/ Yを使用します。

109

コマンドXCOPY

フォルダーを再帰的にコピーする例:

mkdir DestFolder
xcopy SrcFolder DestFolder /E

(下記のコメントで [〜#〜] wiki [〜#〜] に記載されているように、このコマンドはDOS 3.2以降で利用可能になりました)

36
Bronek

パスにスペースがある場合は、引用符が正しいことを確認してください。

これは、TFSビルドサーバーのポストビルドイベントです( "%%"が存在する理由です)。すべてのテストファイルをコピーする必要がありました。

if not exist  "$(TargetDir)..\SingleFolderOutput" mkdir -p "$(TargetDir)..\SingleFolderOutput"

for /r **%%x** in (*.dll, *.pdb, *.xml, *.xaml, *.exe, *.exe.config) do xcopy **"%%x"** "$(TargetDir)..\SingleFolderOutput" /Y
0
SteckDEV