- 2009-01-06 (火) 3:33
- Windows OS | スクリプト
サーバを跨いだフォルダの同期を行う場合にはROBOCOPYを使うと便利です。ROBOCOPYを使えばフォルダのコピーだけでは無く、スイッチの設定でフォルダ間の過不足ファイルを検出し、同期を取る事や、ACL属性のコピーも可能です。
また、実行時間帯の指定も出来ますので、夜中だけフォルダを同期させる。なんて事も簡単に出来ます。
ROBOCOPYの入手方法(Windows XP、Windows 2003)
ROBOCOPYはWindows Vistaには標準搭載ですが、Windows XP、Windows 2003で利用する場合には別途リソースキットをインストールしなければなりません。リソースキットは以下のURLからダウンロードしてください。
※Windows XPを利用している場合でも以下のパッケージで適用可能です。
※Windows Vistaには標準搭載されています。
Windows Resource KitsはインストールしたままだとPathが通っていないので、必要に応じてPathを通してあげる必要があります。既定のインストールだと以下のディレクトリにROBOCOPYは作成されます。
C:\Program Files\Windows Resource Kits\Tools\robocopy.exe
ディレクトリAからBへの単純なコピー
ディレクトリAからディレクトリBに対してフォルダ・ファイルをコピーする場合には以下のように入力します。この場合、ディレクトリAからディレクトリBに対してフォルダ・ファイルがコピーされるだけです。
robocopy ディレクトリA ディレクトリB
例えばServer01上のC:\hogehogeをServer02の共有ドライブhogehoge2にコピーする場合には以下のようになります。
robocopy C:\hogehoge \\server02\hogehoge2
ディレクトリAとBの同期
ディレクトリAとBを同期させる場合には以下のように入力します。
robocopy /mir ディレクトリA ディレクトリB
この場合、ディレクトリAがマスターとなり、ディレクトリBの中身を同期します。ディレクトリAとディレクトリBの内容がまったく異なる場合には、ディレクトリBの内容は全て削除されてしまいます。
ディレクトリAとBの同期させる時間を制限する
RHオプションを付加させることで、同期時間を限定させる事も出来ます。例えば以下のように指定すると、夜22時~朝6時までの間だけディレクトリAの内容をディレクトリBに同期します。
robocopy /mir /RH:2200-0600 ディレクトリA ディレクトリB
ACL属性をコピーする情報に含めてディレクトリAとBの同期させる
SECオプションを付加する事で、ACL属性を保持させたまま同期させる事が出来ます。異なるPC間でACL属性をコピーしたい場合には、ローカルグループでは無く、Active Directoryグループに対してアクセス権限を設定しておく必要があります。
robocopy /mir /sec ディレクトリA ディレクトリB
Robocopy GUIを使ってみる

一通りROBOCOPYの事を学んだところで、ROBOCOPYを便利に使えるアプリケーションをご紹介します。
Robocopy GUIという名前で、要するにROBOCOPYをGUIで操作可能にするアドオンです。このアプリケーションを利用すれば複雑なオプション操作も楽に出来るようになります。
もちろん、操作した内容をBATファイルに保存する事も可能です。
Robocopy GUIを入手する場合には、以下のURLから”UtilitySpotlight2006_11.exe”というファイルをダウンロードします。
http://technet.microsoft.com/ja-jp/magazine/2006.11.utilityspotlight.aspx
画面中の”Save Script”にチェックを入れると、指定したディレクトリにCUIのRobocopy用のBATファイルが以下のディレクトリに作成されます。
%APPDATA%\Microsoft Robocopy GUI\Scripts
Windows Vista用のROBOCOPYのヘルプ
リソースキットに含まれるROBOCOPYのヘルプは英語なので、Windows Vista用のROBOCOPYのヘルプを載せておきます。
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
開始: Mon Jan 05 17:47:32 2009
使用法:: ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...]
[オプション]
コピー元 :: コピー元ディレクトリ (ドライブ:\パスまたは \\サーバー
\共有\パス)。
コピー先 :: コピー先ディレクトリ (ドライブ:\パスまたは \\サーバー
\共有\パス)。
ファイル :: コピーするファイル (名前/ワイルドカード: 既定値は「*.*」
です)
::
:: コピー オプション:
::
/S :: サブディレクトリをコピーしますが、空のディレクトリはコピ
ーしません。
/E :: 空のディレクトリを含むサブディレクトリをコピーします。
/LEV:n :: コピー元ディレクトリ ツリーの上位 n レベルのみをコピーし
ます。
/Z :: 再起動可能モードでファイルをコピーします。
/B :: バックアップ モードでファイルをコピーします。
/ZB :: 再起動可能モードを使用します。アクセスが拒否された場合、
バックアップ モードを使用します。
/EFSRAW :: 暗号化されたすべてのファイルを EFS RAW モードでコピーし
ます。
/COPY:コピーフラグ :: ファイルにコピーする情報 (既定値は /COPY:DAT)。
(コピーフラグ: D= データ、A= 属性、T= タイムスタンプ)。
(S= セキュリティ =NTFS ACL、O= 所有者情報、U= 監査情報)。
/DCOPY:T :: ディレクトリ タイムスタンプをコピーします。
/SEC :: セキュリティと共にファイルをコピーします (/COPY:DATS と
同等)。
/COPYALL :: ファイル情報をすべてコピーします (/COPY:DATSOU と同等)。
/NOCOPY :: ファイル情報をコピーしません (/PURGE と共に使用すると便
利)
/SECFIX :: スキップしたファイルも含むすべてのファイルのファイル セ
キュリティを修正します。
/TIMFIX :: スキップしたファイルも含むすべてのファイルのファイル時刻
を修正します。
/PURGE :: 既にコピー元に存在しないコピー先のファイル/ディレクトリ
を削除します。
/MIR :: ディレクトリ ツリーをミラー化します (/E および /PURGE と
同等)
/MOV :: ファイルを移動します (コピー後にコピー元から削除)。
/MOVE :: ファイルとディレクトリを移動します (コピー後にコピー元か
ら削除)。
/A+:[RASHCNET] :: コピーされたファイルに指定の属性を追加します。
/A-:[RASHCNET] :: コピーされたファイルから指定の属性を削除します。
/CREATE :: ディレクトリ ツリーと長さ 0 のファイルのみを作成します。
/FAT :: 8.3 FAT ファイル名のみを使用してコピー先ファイルを作成し
ます。
/256 :: 256 文字を超える非常に長いパスのサポートをオフにします。
/MON:n :: コピー元を監視し、n 回を超える変更があった場合に再度実行
します。
/MOT:m :: コピー元を監視し、変更があった場合 m 分間再度実行します。
/RH:hhmm-hhmm :: 実行時間 - 新しいコピーを開始できる時刻です。
/PF :: 実行時間をファイルごと (パスごとではない) に確認します。
/IPG:n :: 低速回線で帯域幅を解放するためのパケット間ギャップ (ミリ
秒) 。
/SL :: ターゲットではなくシンボリック リンクをコピーします。
::
:: ファイル選択オプション:
::
/A :: アーカイブ属性が設定されているファイルのみをコピーしま
す。
/M :: アーカイブ属性のあるファイルのみをコピーし、リセットしま
す。
/IA:[RASHCNETO] :: 指定されたいずれかの属性が設定されているファイルのみを含
みます。
/XA:[RASHCNETO] :: 指定されたいずれかの属性が設定されているファイルを除外し
ます。
/XF ファイル [ファイル]... :: 指定された名前/パス/ワイルドカードに一致
するファイルを除外します。
/XD ディレクトリ [ディレクトリ]... :: 指定された名前/パスに一致するディレクト
リを除外します。
/XC :: 変更されたファイルを除外します。
/XN :: 新しいファイルを除外します。
/XO :: 古いファイルを除外します。
/XX :: コピー先にだけ存在するファイルとディレクトリを除外し
ます。
/XL :: コピー元にだけ存在するファイルとディレクトリを除外し
ます。
/IS :: 同一ファイルを含みます。
/IT :: 異常なファイルを含めます。
/MAX:n :: 最大ファイル サイズ - n バイトより大きいファイルを除外し
ます。
/MIN:n :: 最小ファイル サイズ - n バイトより小さいファイルを除外し
ます。
/MAXAGE:n :: 最長ファイル有効期間 - n 日より古いファイルを除外します。
/MINAGE:n :: 最短ファイル有効期間 - n 日より新しいファイルを除外しま
す。
/MAXLAD:n :: 最大最終アクセス日 - n で指定する値以後に使用していない
ファイルを除外します。
/MINLAD:n :: 最小最終アクセス日 - n で指定する値以後に使用されたファ
イルを除外します。
(n < 1900 の場合、n = n 日です。それ以外は、n = YYYYMMDD
の日付です)。
/XJ :: 接合ポイントを除外します (通常、既定で含まれます)。
/FFT :: FAT ファイル時間 (2 秒の粒度) を仮定します。※Windows Vista以降
/DST :: 1 時間の DST 時間差を補正します。※Windows Vista以降
/XJD :: ディレクトリの接合ポイントを除外します。※Windows Vista以降
/XJF :: ファイルの接合ポイントを除外します。※Windows Vista以降
::
:: 再試行オプション:
::
/R:n :: 失敗したコピーに対する再試行数: 既定値は 1,000,000。
/W:n :: 再試行と再試行の間の待機時間: 既定値は、30 秒です。
/REG :: /既定の設定としてレジストリに R:n と /W:n を保存します。
/TBD :: 共有名が定義されるのを待ちます (再試行エラー 67)。
::
:: ログ オプション:
::
/L :: リストのみ - いずれのファイルにも、コピー、タイムスタン
プの追加、または削除を実施しません。
/X :: 選択されたファイルのみではなく、余分なファイルをすべて報
告します。
/V :: スキップされたファイルを示す詳細出力を作成します。
/TS :: 出力にコピー元ファイルのタイム スタンプを含めます。
/FP :: 出力にファイルの完全なパス名を含めます。
/BYTES :: サイズをバイトで出力します。
/NS :: サイズなし - ファイル サイズをログに記録しません。
/NC :: クラスなし - ファイル クラスをログに記録しません。
/NFL :: ファイル リストなし - ファイル名をログに記録しません。
/NDL :: ディレクトリなし - ディレクトリ名をログに記録しません。
/NP :: 進行状況なし - コピーされた % を表示しません。
/ETA :: コピーするファイルの推定完了時刻を表示します。
/LOG:ファイル :: ログ ファイルに状態を出力します (既存のログを上書きしま
す)。
/LOG+:ファイル :: ログ ファイルに状態を出力します (既存のログ ファイルに
追加します)。
/UNILOG:ファイル :: ログ ファイルに UNICODE で状態を出力します (既存のログを
上書きします)。※Windows Vista以降
/UNILOG+:ファイル :: ログ ファイルに UNICODE で状態を出力します (既存のログに
追加します)。※Windows Vista以降
/TEE :: コンソール ウィンドウとログ ファイルに出力します。
/NJH :: ジョブ ヘッダーがありません。
/NJS :: ジョブ概要がありません。
/UNICODE :: 状態を UNICODE で出力します。※Windows Vista以降
::
:: ジョブ オプション:
::
/JOB:ジョブ名 :: 名前の付いたジョブ ファイルからパラメータを取得します。
/SAVE:ジョブ名 :: 名前の付いたジョブ ファイルにパラメータを保存します。
/QUIT :: コマンド ラインの処理後に終了します (パラメータの表示の
ため)。
/NOSD :: コピー元ディレクトリを指定しません。
/NODD :: コピー先ディレクトリを指定しません。
/IF :: 後続のファイルを含みます。
参考リンク
関連する記事
- Newer : YAMAHA RTXのコンフィグをTFTP経由で自動バックアップするスクリプト
- Older : Hyper-V用のMicrosoft資料
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://tech.pnpk.net/wp-trackback.php?p=577
- Listed below are links to weblogs that reference
- 時間を指定してフォルダを同期させる@ROBOCOPY from http://tech.pnpk.net



































