robocopyを使って差分の完全コピーするコマンド紹介

ますのです。WindowsServer2019も出てきまして、サーバ移行とかも発生してきそうな今日この頃。
2012のサポート期限が2023/1/10までなので2019はあまり使われないかもですね。

さてさて、そういった時にデータの移行があると思います。
日時でデータが変わっていき、差分データをコピーしたいなんてことがあると思います。
その時に使ったrobocopyの内容を忘れぬようメモしていきたいと思います。

robocopyで筆者がよく使っているオプションとかの設定

robocopy “C:\コピー元” “D:\コピー先” /E /ZB /J /COPY:DATOU /MIR /DCOPY:DAT /FFT /R:1 /W:10 /BYTES /NP /LOG:”C:\Log\%date:~0,4%%date:~5,2%%date:~8,2%.txt”
オプション 概要
/E 空のディレクトリを含むサブディレクトリをコピーします。
/ZB 再起動可能モードを使用します。アクセスが拒否された場合、バックアップ モードを使用します。
※管理者モードで実行が必要条件となります。
/J バッファーなし I/O を使用してコピーします (大きなファイルで推奨)。
/COPY:コピーフラグ ファイルにコピーする情報 (既定値は /COPY:DAT)。
(コピーフラグ: D= データ、A= 属性、T= タイムスタンプ  O= 所有者情報、U= 監査情報)。
/MIR ディレクトリ ツリーをミラー化します (/E および /PURGE と同等)。
/DCOPY:コピーフラグ ディレクトリにコピーする情報 (既定値は /DCOPY:DA)。
(コピーフラグ: D= データ、A= 属性、T= タイムスタンプ)。
/FFT FAT ファイル時間 (2 秒の粒度) を仮定します。FAT⇔NTFSでタイムスタンプに差分が出るため考慮。
/R:n 失敗したコピーに対する再試行数: 既定値は 1,000,000。
/W:n 再試行と再試行の間の待機時間: 既定値は、30 秒です。
/BYTES サイズをバイトで出力します。
/NP 進行状況なし – コピーの完了率を表示しません。
/LOG:ファイル ログ ファイルに状態を出力します (既存のログを上書きします)。

参考1:robocopyコマンドの有用なオプション
参考2:【Windows】 robocopy コマンドのメモ

robocopyのオプション内容やらを「ざっくり」説明するとこんな感じでしょうか。

  • 元フォルダを完全同期するよ!(削除されたデータはコピー先でも削除!)
  • アクセス拒否されてもバックアップモードでコピーしちゃうからね!
  • フォルダもファイルも、タイムスタンプなどの属性情報は全部元データから持ってくるよ!
  • 失敗したら1回だけコピーを試すね!
  • byte表示でログ出力するね!名称は日付.logだよ!ちなみにcmd上では進捗率は出さないよ!
ますの
譲り受けたrobocopyコマンドですが、使い勝手が良くてわたしは重宝しているであります!
ちなみに使うタイミングは、ファイルサーバのフォルダ移動がメインだったり。
タスクスケジューラで何かとrobocopyを仕込むことがあるので、覚えておきたい内容であります。
最新情報をチェックしよう!