2009-05-28 10 views
27

ビルド後のイベントの一部として、いくつかの既知のファイルを別のディレクトリにコピーしたいが、私のビルドで "[ファイル] [宛先] [スイッチ]をコピーする"イベント。可能であれば、同様のフォーマットでコピーしたいファイルをリストアップしたいと思います: "[ファイル1] [ファイル2] [ファイル3] [etc ...] [コピー先] [スイッチ]" 。しかし、Windowsではこの種の形式が好まれません。何か案は?ありがとう!Windowsコマンドラインで複数の名前付きファイルを1回の "copy"コマンドでコピーできますか?

答えて

41

あなたは、バッチファイルまたは直接コマンドプロンプトからいずれか「の」を使うことができます。ただ、詳細情報については

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

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

ワイルドカードが同様にファイルリストでサポートされています/を入力しますか?コマンドプロンプトから、または読みやすくするために、スタート - >ヘルプとサポートを使用し、 "For"を検索してください。私のXP Proボックスでは、全文検索結果の項目15でした。

+3

魅力的な作品!唯一のことは、ビルドイベント(%% I in ...)で使用されたときにパーセント記号を2倍にしなければならないことです。ありがとう!! – Pwninstein

+0

ファイルがサブフォルダにある場合は、%I c:\ somedir \ ' – Matheus

2

<Copy> MSBuild taskを使用してください。

+0

この質問には、.NETがインストールされているとは言えず、MSビルドスクリプトの開発が必要です。コマンドラインのコピーを行うだけではすでに厄介です。なぜ上のすべてを追加するのですか? – jpmc26

+0

「ポストビルドイベントの一部として」コピーすることに関する質問があります。 MSBuildを使用することは私にとって自然なことでした。 –

+0

@DavidSchmittこれは私が望むものだと思いますが、ビルドイベントでどのように使用できるのか分かりません。それを行うための構文を表示できますか? –

15

XPとVistaはrobocopyをXCOPYを交換し、そしてそれは正確に何をしたい行います。

robocopy source\folder a\dest\folder file1.exe file2.bat file3.dll file4.txt 
+1

(少なくとも古いバージョン)をコピーして、'/f %% for(* .txt * .doc * .html) XPのrobocopyが含まれていない場合は、Windows 2003サーバーリソースキットのようなものからインストールする必要があります。http://www.microsoft.com/Downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang = en – Dolphin

+0

@ Dolphin:良いキャッチ;私はXPマシンでそれを持っていて、自分でインストールするのを覚えていませんでしたが、あなたは正しいです。 – Kevin

+2

XPでもVistaでも「置き換えられた」xcopyはありません。それはまだそこにある。 – Timwi

関連する問題