私は、バッチスクリプトを初めて使用します。初心者として、スクリプト作成中に両方とも便利だと思いますxcopyとrobocopyの主な違いは何ですか?
Robocopyは、新しいバージョンのWindowsでXCopyを置き換えます
はい、Mark Setchellに同意します。どちらもがらくたです。 (マイクロソフトから提供)
UPDATE:
XCopyリターンコード:
0 - Files were copied without error.
1 - No files were found to copy.
2 - The user pressed CTRL+C to terminate xcopy. enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line.
5 - Disk write error occurred.
Robocopyが返すコード:
0 - No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.
1 - One or more files were copied successfully (that is, new files have arrived).
2 - Some Extra files or directories were detected. No files were copied Examine the output log for details.
3 - (2+1) Some files were copied. Additional files were present. No failure was encountered.
4 - Some Mismatched files or directories were detected. Examine the output log. Some Housekeeping may be needed.
5 - (4+1) Some files were copied. Some files were mismatched. No failure was encountered.
6 - (4+2) Additional files and mismatched files exist. No files were copied and no failures were encountered. This means that the files already exist in the destination directory
7 - (4+1+2) Files were copied, a file mismatch was present, and additional files were present.
8 - Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further.
16 - Serious error. Robocopy did not copy any files. Either a usage error or an error due to insufficient access privileges on the source or destination directories.
Robocopyの戻り値の詳細については、こちらをご覧ください。 http://ss64.com/nt/robocopy-exit.html
最も重要な違いは、robocopy
は(通常)エラーが発生すると再試行するのに対し、xcopy
は再試行しないことです。ほとんどの場合、これによりrobocopy
はスクリプトでの使用により適したものになります。
補遺:完全を期すために、ロボコピーにはエッジケースの既知の問題が1つあります。 名前に無効なUTF-16シーケンスが含まれるファイルまたはディレクトリのコピーに黙って失敗する場合があります。 それが問題になる場合は、サードパーティのツールを調べるか、独自のツールを作成する必要があります。
私が見ることができる違いは、Robocopyにはもっと多くのオプションがあるということですが、特別なことをしない限り、それらのどれも特に役立つとは思いませんでした。
いくつかのコピールーチンのベンチマークを行ったところ、XCOPYとROBOCOPYが最速であることがわかりましたが、驚いたことに、XCOPYは常にRobocopyを凌edgeしていました。
Robocopyが失敗したコピーを再試行するのは皮肉なことですが、xcopyが実行したことのないベンチマークテストでも失敗しました。
ベンチマークテスト後、ファイル全体を(バイトごとに)ファイル比較しました。
テストでrobocopyで使用したスイッチは次のとおりです。
**"/E /R:1 /W:1 /NP /NFL /NDL"**.
誰かがより速い組み合わせを知っているなら(必要な/ Eを削除する以外)、私は聞きたいです。
Robocopyのもう1つの興味深い/残念な点は、コピーが失敗した場合、デフォルトでは、試行ごとに30秒の遅延で1,000,000回再試行することです。長いバッチファイルを無人で実行している場合、数時間後に戻って特定のファイルをコピーしようとしていることに気付くと、非常にがっかりする可能性があります。
/ Rおよび/ Wスイッチを使用すると、この動作を変更できます。
ここにファイルを添付する方法があれば、結果を共有できます。
また、FastCopyとWindows Copyをテストに含め、各テストを10回実行しました。注意してください、違いはかなり重要でした。 95%の信頼区間には重複がありませんでした。
どんなバージョンであっても、人々が* {COPY}の手で苦しんでいるのを聞くのは苦痛です。私はベテランのバッチおよびBashスクリプトライターであり、rsyncをお勧めします。cygwin(cygwin.org)内でこれを実行するか、いくつかのバイナリを見つけることができます。出力を2>&1にリダイレクトして、後で分析するためにout.logなどのログファイルに保存できます。幸運を祈ります= M。カーン=