Robocopy について
Robocopy 機能
基本書式
robocopy コピー元 コピー先 [ファイル [ファイル]…] [オプション]
Robocopy 使用イメージ図
Robocopyは、コピー元(バックアップ元)からコピー先(バックアップ先)に差分なく、確実にコピーをする機能があります。オプションにもよりますが、コピー元 (バックアップ元) の状態を基準として、コピー先 (バックアップ先) にコピーすると考えて良いです。
例えば、コピー元 (バックアップ元) であるファイルが削除されたら、コピー先 (バックアップ先) のファイルも削除されことになり、コピー元 (バックアップ元) を基準として、同期が取られます。
CドライブのAフォルダ内には、pdf、xslx、docxの3つがあり、EドライブのBフォルダ内には、 pdf、xslx、docx、xslxがあった場合、robocopyをすれば、EドライブのBフォルダ内のxslxは削除されて、Cドライブの状態になります。
Robocopy オプション
Robocopyコマンドのパラメータ(オプション)はたくさんありますので、良く使われるものを記載します。
/MIR
バックアップ元とバックアップ先をミラーリングします。
このオプションを付与することにより、元と先でファイルが同じ状態になります。
/R:回数
ファイルコピーに失敗した場合にコピーを試行する回数です。
例えば、3とした場合、3回コピーを試行します。3回目でコピーができない場合は、スキップします。
指定しない場合、既定値の100万回が使われますので、この記載は、必ずしておきましょう。
一時的なネットワークの通信影響のために不通になることもあるために、とりあえず、回数3を指定するのがよいと思います。
/W:回数
再試行する時の待ち時間(秒)です。
例えば、3とした場合、3秒経ってからを試行します。
待ち時間は特に必要がないので、/w:0で問題ありません。
/COPY:以下の指定したアルファベット
ファイルのどの情報をコピーするかを指定するオプションになります。
コロンの後はそれぞれ以下の意味があります。
上記すべてが含まれる場合は /COPYALL と同義になります。
通常使用する場合は、データ本体のD、アーカイブ情報のA、タイムスタンプのTの /COPY:DAT で十分です。
/XO
コピー元とコピー先のタイムスタンプを比較してコピー元のタイムスタンプが古い場合、そのファイルを除外します。
/NP
バックアップ中の進行状況を表示しません。
表示しない方がバックアップ時の負荷が下がる為、若干速くなるようです。
/NDL
バックアップ結果として、ログファイルにファイルのみが出力されるようになります。
フォルダパスがログに出力されなくなるので、ログがすっきりします。
Robocopy コマンドの戻り値
Robocopy コマンドでファイル コピーを実行した際、エラーが発生した際に戻り値が記録されますが、今回は戻り値の結果の詳細について記載します。
戻り値は、Robocopyバッチを作成後、運用する場合に、errorlevelを使用して、コピーが正常に行われているか、失敗した場合は、どのようなエラーなのかの判断ができます。
- 戻り値 0: コピーする必要がないため、何も実施されませんでした。
- 戻り値 1: ファイルのコピーが成功しました。
(フォルダーのコピーは含まれません。) - 戻り値 2: 余分なフォルダー、ファイルが確認されました。
(コピー元にはなく、コピー先だけにあります。) - 戻り値 4: 同じ名前で別の種類のファイルが存在しています。
(コピー元はフォルダーで、コピー先はファイル、またはその逆になります。) - 戻り値 8: コピーに失敗しました。
(リトライした結果を含みます、また /L では実際にコピー処理を行わないため、実質 8 以上の戻り値は出力されません。) - 戻り値 16: 不正な引数を指定しました。
このそれぞれの戻り値は LOG オプションでカウントされる場所は以下となります。
- 0 と判定されたファイル、フォルダーはログ中の “スキップ” にカウントされます。
- 1 と判定されたファイル、フォルダーはログ中の “コピー済み” にカウントされます。
- 2 と判定されたファイル、フォルダーはログ中の “Extras” にカウントされます。
- 4 と判定されたファイル、フォルダーはログ中の “不一致” にカウントされます。
- 8 と判定されたファイル、フォルダーはログ中の “失敗” にカウントされます。
- 16 と判定されたファイル、フォルダーはログ中の “失敗” にカウントされます。