1

あなたの助けが必要です。チェックで特定の操作を行うためのバッチファイルを探しています。状況を説明しましょう:

2 つのフォルダー (C:\Folder1 と C:\Folder2)
があります。Folder1 に配置された *.TXT ファイルごとに、そのファイルのコピーをフォルダー 2 に配置するバッチ ファイルを作成することは可能でしょうか? 2 つのフォルダーを比較し、このファイルが Folder2 に存在しないことを確認します)。

別のTXTファイルがFolder1に配置されたときに、そのファイルをFolder2にのみコピーする必要があるため、カウンターを使用することもできます(以前のすべてのtxtファイルが既にAに追加されているわけではありません)。

4

3 に答える 3

4

最も簡単な方法はrobocopyを使用することです。すでに変更されたファイルのみをコピーし、コピーするものを制御するための多くのオプションがあります。これは Vista 以降に組み込まれており、Server 2003 Resource Kitで Windows XP/Server 2003 用にダウンロードできます。

于 2012-08-09T15:47:45.107 に答える
3

c:\folder2これにより、存在しないが現在のフォルダーに存在するtxtファイルがコピーされますc:\folder2

for %%a in (*.txt) do if not exist "c:\folder2\%%a" copy "%%a" c:\folder2

@dbenham によって特定された可能性のある問題をカバーするために追加された引用

于 2012-08-09T15:50:17.840 に答える
1

Sean の回答を拡張して、現在のディレクトリではなく folder1 からコピーするのは簡単です。また、スペースや特殊文字など&でコードが壊れないように、パスを引用符で囲みました。

@echo off
for %%F in ("c:\folder1\*.txt") do if not exist "c:\folder2\%~nxF" copy "%%F" "c:\folder2"

バッチファイルも必要ありません。すべてのダブル パーセントをシングル パーセントに変更すると、コマンド ラインから FOR コマンドを実行するだけで済みます。

私は shf301 の提案も気に入っていますが、ROBOCOPY のオプションが多すぎて、慣れるまで混乱する可能性があります。私はあなたが次のことを望んでいると信じています:

robocopy /xn /xo "c:\folder1" "c:\folder2" *.txt
于 2012-08-09T16:02:46.023 に答える