ファイルの大きなバンドルをコピーするためにxcopy
を使用しています。 xcopy
について私が特に気に入っていることの1つは、/F
スイッチです。このスイッチは、すべてのソースファイルと宛先ファイル、含まれているパスを次のように表示します。
xcopy /E /Y /F D:\Temp_Folder\test_Origin\* D:\Temp_Folder\test_dest\
D:\Temp\Origin\B_Normal\blabla.txt -> D:\Temp\dest\B_Normal\blabla.txt
D:\Temp\Origin\B_Normal\B.A\normal.txt -> D:\Temp\dest\B_Normal\B.A\normal.txt
D:\Temp\Origin\B_Normal\B.B\drawing.bmp -> D:\Temp\dest\B_Normal\B.B\drawing.bmp
D:\Temp\Origin\C_Fill_with_empty\empty.bmp -> D:\Temp\dest\C_Fill_with_empty\empty.bmp
D:\Temp\Origin\C_Fill_with_empty\empty.txt -> D:\Temp\dest\C_Fill_with_empty\empty.txt
5 File(s) copied
ただし、いくつかの問題があるようです:
D:\Temp\Origin>tree /F /A
...
D:.
+---A_Empty
+---B_Normal
| | blabla.txt
| |
| +---B.A
| | normal.txt
| |
| \---B.B
| Drawing.bmp
|
\---C_Fill_with_empty
| empty.bmp
| empty.txt
|
\---empty
ご覧のとおり、ディレクトリD:\Temp\Origin\A_Empty\
とD:\Temp\Origin\C_Fill_with_empty\empty\
はコピーされていないようです(空のディレクトリではなく、空のファイルがコピーされているようです)。
ただし、これは真実ではありません。宛先フォルダには、ディレクトリA_empty
およびC_Fill_with_empty\empty
がありますが、/F
スイッチはコピーされたファイルのみを表示するため、空のディレクトリのコピーは完了しましたが、表示されていません。 (私の元の投稿では、空のディレクトリはコピーされていないと思いました)
最も重要なのは、/C
スイッチの意味がわからないことです。
エラーが発生してもコピーを続行します。
昨夜、束のコピーのxcopy
結果はエラーメッセージでした:
\\nas\<Complicated_Directory_Tree>\<file1>.gif -> G:\<Complicated_Directory_Tree>\<file1>.gif
\\nas\<Complicated_Directory_Tree>\<file2>.gif -> G:\<Complicated_Directory_Tree>\<file2>.gif
Sharing violation
再試行メカニズムを使用して、この再現不可能なエラーメッセージを回避したいのですが、/C
スイッチがどのように動作するかわかりません。「再試行」または「無視」として動作しますか? (この質問はすでに他の人から尋ねられていますが、それらの人はrobocopy
に変更するようにアドバイスを受けましたが、 このStackOverflowの投稿 で述べたように、これもエラーが発生しにくいようです)。
再試行メカニズムを強制する方法を知っている人はいますか?
前もって感謝します
/ Eパラメータは、空のものを含むディレクトリとサブディレクトリをコピーします。それを追加するだけで、問題は解決します。
/ Cパラメーターは、エラーが発生した場合でもコピーを続行します。それはどんな問題もスキップするはずです。
詳細を説明すると、/ cはエラーを無視し、次の有効なファイルでコピープロセスを続行します。
エラーを再試行する場合(推奨されませんが)、バッチファイルでWHILEループを使用できます(便利なコマンド:IF ERRORLEVEL=およびtimeout)。 例 。