Learning Note

できるようになったことを記録しています

robocopyでファイルをコピーする

手動でのファイルコピーはミスが起こりやすいため、大量のデータを扱う場合などは「robocopy」というコマンドが便利。

f:id:konifug:20170107200940j:plain

*WindowsVista 以降のOSに標準搭載。


書式

robocopy コピー元ファイルのパス コピー先ファイルのパス オプション


例えば、「C:\test」のフォルダの中身ごと、「D:\back」というフォルダにコピーを行いたい場合は
 
robocopy C:\test D:\back


パスに空欄を含む文字列が有る場合は、ダブルクォーテーションでくくる。

robocopy “C:\test 1” “D:\back 1”


オプションについては以下URL参照

https://technet.microsoft.com/ja-jp/library/cc733145(v=ws.10).aspx


私がよく使う設定

robocopy "コピー元パス" "コピー先パス" /E /MIR /R:1 /W:1 /XO /NP


オプションに6項目設定しています。

/E 配下のサブディレクトリも全てコピーする。
/MIR 空のものも含めてサブフォルダをコピーし、コピー元にないファイル・フォルダは削除する。
/R:1 1回リトライ。コピーが失敗した時の再試行回数を指定する。(既定値は100万回)
/W:1 失敗時に1秒待機。待機時間を秒単位での再試行の間隔を指定する。 (既定値は30秒待機)上記リトライと併せて設定必須。
/XO コピー先と比較し、コピー元のタイムスタンプが新しくなっていないファイルは上書きしない。
/NP コピー進捗率を表示しない。(進捗率が表示されてわかりづらいログになる)


メモ帳等のテキストエディタで同コマンドをcmdやbat形式で保存すれば、次回からコマンドを入力する手間も省けます。