Robocopyでフォルダを同期する方法

Rich Copyの目的がRobocopyをコマンドで使うのが難しいから簡単にGUIでということらしいので、その難しいRobocopyの同期するオプションについて書いてみる。
Robocopyの同期の利点は、普通のコピーと違い差分だけコピーや削除を行ってくれるところ

インストール (Windows 7ではあらかじめインストールされています。)

Windows Server 2003 Resource Kit Toolsからダウンロード
適当にインストールして、C:\ProgramFiles\Windows Resorce Kits\Toolsからrobocopy.exeをパスの通ったC:\windows\system32\などに移動

コマンド

@echo off
robocopy "コピー元" "コピー先" /mir /xd "除外したいフォルダ" "除外したいフォルダ" /xa:sh
pause

上記のコマンドは色分けされているところがオプションとして1つのセットになります。

  • 赤いところは、コピー元とコピー先の指定
  • /mirは同期することを指定
  • 青いところは除外したいフォルダを指定 複数選択可能
  • 緑のところは、同期から除外するファイル属性を指定
    • 今回指定している、sはシステムファイル、hは隠しファイルを除外するという意味です。
  • その他詳細を設定したい場合は、コマンドプロンプトから robocopy /?でヘルプを読むことができます。
  • が、Windows7以外では英語なので日本語版を載せておきます。2009年05月17日 Robocopyのヘルプ

このコマンドをテキストに貼り付けて、拡張子を.txtから.batに変更すると完成。

毎日定期実行するには

Windows XPの場合

  1. スタート -> プログラム -> アクセサリ -> タスク -> スケジュールされたタスクの追加 を実行
  2. 実行するプログラムを参照し、先ほど作成したbatを選択
  3. 実行間隔を好きに設定 バックアップなら日単位でもOK
  4. あとは開始時刻と毎日実行するか、開始日を指定して次へ
  5. ログインしているユーザー名とパスワードを入力して次へ
  6. 完了

Windows 7の場合

  1. スタート -> プログラム -> アクセサリ -> システムツール -> タスクスケジューラ を実行
  2. タスクの作成 -> 操作タブ -> 新規 -> プログラム/スクリプトを参照し、作成したbatを選択 ->OK
  3. トリガータブ -> 毎日をクリック -> 開始時刻を指定 -> 繰り返し間隔のチェックを外す -> 有効期限のチェックを外す -> OK

以上で毎日決まった時間にバックアップができます。

独り言

Windows 7のタスクスケジューラは細かく指定できるようになっているけど、複雑になって多少使いにくい人もいるんじゃないかな