web-dev-qa-db-ja.com

1つの「コピー」コマンドを使用して、Windowsコマンドラインで複数の名前付きファイルをコピーできますか?

ビルド後イベントの一部としていくつかの既知のファイルを別のディレクトリにコピーしたいのですが、ビルドイベントに「copy [file] [destination] [switches]」の行や行を含めたくありません。可能であれば、同様のフォーマットを使用してコピーしたいファイルをリストしたいと思います: "copy [file 1] [file 2] [file 3] [etc ...] [destination] [switches]" 。ただし、Windowsはこのタイプの形式を好まないようです。何か案は?ありがとう!

37
Mark Carpenter

「for」は、バッチファイルで使用するか、コマンドプロンプトから直接使用できます。

for %I in (file1.txt file2.txt file3.txt) do copy %I c:\somedir\

ワイルドカードもファイルリストでサポートされています:

for %I in (*.txt *.doc *.html) do copy %I c:\somedir\

詳細については、「/?」と入力してください。コマンドプロンプトから、またはヘルプをより読みやすくするには、スタート->ヘルプとサポートを使用して、 "For"を検索します。私のXP Proボックスでは、全文検索結果の項目15でした。

52
Ken White

XPとVistaはxcopyrobocopyに置き換えました。そして、まさにあなたが望むことをします。あなたが望むものの構文は最初は逆に感じますが、それは仕事をします:

robocopy source\folder a\dest\folder file1.exe file2.bat file3.dll file4.txt
20
Kevin
2
David Schmitt