Linux(UNIX)には、差分同期を自動的に行ってくれるコマンド『rsync』というものがあるのだが、これと同様の使い方が出来るWindowsのコマンドプロンプト用のコマンド『Robocopy』というものがあったので紹介する。

robocopy <コピー元フォルダ> <コピー先フォルダ>[<対象となるファイル> [...][<オプション>]

rsyncと同じく、ミラーリングや差分コピーも可能で、Deleteオプション(コピー元に存在しないファイルを削除する)相当のオプションも存在する。
また、samba経由でのバックアップも可能であり、rsyncには存在しないログ出力オプションもあるため、非常に便利なコマンドだ。

オプションがいっぱいあるので、よく使われるオプションを抜粋して以下に記述しておく。

  • /MIR:ミラーリング
  • /XO:改変がないファイルを除外(差分のみ同期)
  • /XA:SH:ドライブを丸ごとバックアップする場合、コピー出来ないシステムファイル等がある場合にエラーとなるため、隠しファイルとシステムファイルを除外する
  • /NP:進行状況なし - コピーの完了率を表示しない
  • /NDL:ディレクトリなし - ディレクトリ名をログに記録しない。
  • /R:エラー時のリトライの回数(/R:0=0回)
  • /W:エラー時リトライ開始までの待ち時間(/W:0=0秒)
  • /TEE:バックアップの結果をコマンドプロンプトとログファイルの両方に出力する
  • /XJT:ディレクトリの接合ポイントを除外する
  • /XJF:ファイルの接合ポイントを除外する
  • /XD:指定された名前/パスに一致するディレクトリを除外する
  • 例)"$RECYCLE.BIN" "System Volume Information"(除外したい隠しファイル)
  • /LOG:"ログ出力先のパス"
  • /FFT : FAT ファイル時間 (2 秒の粒度) を仮定する。