web-dev-qa-db-ja.com

ファイルのセットをコピーすることは可能ですが、ファイルがすでに存在する場合は自動的にスキップしますか?

Copyコマンドには、ファイルがすでに存在する場合に自動的に置き換えるオプションがあることは知っていますが、ファイルがまだ存在しない場合にのみファイルをコピーする方法かどうかを知りたいです(/Y)。 copyコマンドでワイルドカードを使用してソースからコピーするため、バッチコードの実際のファイル名がわかりません。

copy *.Zip c:\destination

自動上書きの代わりにこれが必要な理由は、ファイルが大きく、既存のものをスキップすると実行時間が大幅に節約されるためです。これはネットワーク共有を介して行われるため、この量のデータのコピーには時間がかかる場合があります...

追加情報:
これは、バックアップを実行してZipファイルをコンピューターから共有サーバーにコピーするバッチジョブです。何らかの理由でバッチジョブが終了しなかった場合(コピーされたZipファイルの一部のみ)、バッチを再度実行する必要がありますが、以前にコピーされていないZipファイルに対してのみです。

3
awe

この問題は、robocopyを使用し、/Mオプションを使用して、アーカイブフラグが設定されたファイルのみをコピーしてからクリアすることで解決されます。

robocopy /M *.Zip c:\destination

ウィキペディアのこの記事 では、これは実際にはアーカイブフラグが最初に意図されているものと非常に似ていることがわかります。

0
awe

このコマンドは私のためにこれを解決しました:

XCOPY *.Zip /D C:\DESTINATION
4
user199446
echo n|xcopy "[source]" "[destinaton]" 

特定の用途に合わせて調整するために、xcopyのさまざまな引数を確認してください

2
Uninspired

Robocopy-宛先にすでにあるファイルを自動スキップします

ROBOCOPY\some\folder c:\ destination * .Zip / S

1
integratorIT