Xcopyを使用して、1つのxcopyコマンドのみを使用して、複数のディレクトリから1つのディレクトリにファイルをコピーすることはできますか?
ディレクトリツリーがあると仮定して
root\Source\Sub1\Sub2
サブフォルダーを含むディレクトリroot\Sourceからroot\Destinationにすべての.xmlファイルをコピーしたいと思います。フォルダ構造をコピーするのではなく、ファイルだけをコピーします。
DandDIが言ったように、xcopyは必要ありません。 forステートメントは非常に役立ちます。ただし、dirコマンドの処理結果も示す必要はありません。このコマンドは、
for /R c:\source %f in (*.xml) do copy "%f" x:\destination\
ちなみに、バッチファイルから使用する場合は、変数%fの前にスペア%を追加する必要があるため、コマンドラインは次のようになります。
for /R c:\source %%f in (*.xml) do copy %%f x:\destination\
バッチ内で使用する場合
そのためにxcopyは必要ありません。必要なすべてのファイルのリストを取得し、その方法でコピーを実行できます。
たとえば、Windows XPコマンドプロンプトでは次のようになります。
for/f "delims =="%k in( 'dir c:\ source\*。xml/s/b')do "%k" x:\ destination\
/ sはすべてのサブディレクトリに入り、/ bはファイル名とパスのみをリストします。順番に各ファイルが%k変数に割り当てられ、次にcopyコマンドがファイルを宛先にコピーします。唯一のトリックは、宛先がソースの一部ではないことを確認することです。
「すべての小さなサブディレクトリからすべてのファイルを1つのディレクトリに集める方法」と私が思うこの問題に対する答えは、XXCOPYと呼ばれるソフトウェアをダウンロードすることです。これはXXCOPY.COMから無料で入手でき、幸いにも無料の非商用バージョンがあります。 XXCOPY.COMのヘルプ機能に関するよくある質問の1つは、「すべてのファイルを1つのディレクトリに集める方法」であり、どのスイッチを使用するかがわかります。 XXCOPYはこれを確実に行う方法ですが、.Zipアーカイブで提供されるため、解凍するのはそれほど簡単ではありませんが、特に難しくはありません。 ZipGenius.itのWebサイトから入手できるZipGeniusと呼ばれる解凍プログラムがあるので、XXCOPYをダウンロードする前にZipGeniusをダウンロードすれば、それは小さな部分の小さな時間のダブルワミー(!)