2014/01/15

robocopyコマンドでファイルの同期

robocopyのほうがxcopyより同期に適している。

:: robocopyコマンドオプション一覧
::
:: > robocopy /? で表示される内容の抜粋一部抜粋
::
::
:: 使用法   : ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...] [オプション]
::
:: コピー元 : コピー元ディレクトリ (ドライブ:\パスまたは \\サーバー\共有\パス)。
:: コピー先 : コピー先ディレクトリ (ドライブ:\パスまたは \\サーバー\共有\パス)。
:: ファイル : コピーするファイル (名前/ワイルドカード: 既定値は「*.*」です)
::
:: /PURGE                     : 既にコピー元に存在しないコピー先のファイル/ディレクトリを削除します。
:: /E                         : 空のディレクトリを含むサブディレクトリをコピーします。
:: /MIR                       : ディレクトリ ツリーをミラー化します (/E および /PURGE と 同等)
:: /NP                        : 進行状況なし - コピーの完了率を表示しません。
:: /XF ファイル [ファイル]... : 指定された名前/パス/ワイルドカードに一致するファイルを除外します。
:: /R:n                       : 失敗したコピーに対する再試行数: 既定値は 1,000,000。
:: /W:n                       : 再試行と再試行の間の待機時間: 既定値は、30 秒です。
:: /COPY:コピーフラグ         :: ファイルにコピーする情報 (既定値は /COPY:DAT)。
::                              (コピーフラグ: D= データ、A= 属性、T= タイムスタンプ)。
::                              (S= セキュリティ =NTFS ACL、O= 所有者情報、U= 監査情報)。
:: /DCOPY:T                   :: ディレクトリ タイムスタンプをコピーします。

echo off

set TARGET_PATH="F:\backup\%~1"
set SOURCE_PATH="E:\%~1"
set LOG_FILE="F:\backup.log\\%~1.txt

robocopy %SOURCE_PATH% %TARGET_PATH% /MIR /R:2 /W:10 /NP /COPY:DAT /DCOPY:T > %LOG_FILE%

echo on