Robocopyのバッチを作成する
そのまま、コピー元、コピー先をユーザーの環境に変更して、それ以外は、コピー&ペーストで利用ができるように、以下の2パターンのバッチを作成しました。
Robocopyコマンドの書式やオプションについては、以下の記事を参考にしてください。
ローカルドライブ間のデータ同期
こちらのバッチは、送信元が、CドライブのAフォルダ、送信先がEドライブのBフォルダとなり、同一ドライブ間の同期になってます。
※コピーは右上の「Copy」をクリックしたら、コピーができます。
@set str1=開始:
@set str2=終了:
@set str3=バックアップフォルダ名:
@set str4=ステータス:
@cd C:\DataBackUp\log
echo %str1% %DATE% %TIME% > DataBackUp終了コード.txt
echo %str3% Test >> DataBackUp終了コード.txt
robocopy /mir C:\Aフォルダ E:\Bフォルダ /copy:dat /xo /np /ndl /r:3 /w:0 > DataBackUp.log
if errorlevel 16 echo %str4% FATAL ERROR >> DataBackUp終了コード.txt & goto end
if errorlevel 8 echo %str4% FAILED COPIES >> DataBackUp終了コード.txt & goto end
if errorlevel 4 echo %str4% MISMATCHES >> DataBackUp終了コード.txt & goto end
if errorlevel 2 echo %str4% EXTRA FILES >> DataBackUp終了コード.txt & goto end
if errorlevel 1 echo %str4% COPY SUCCESSFUL >> DataBackUp終了コード.txt & goto end
if errorlevel 0 echo %str4% NO CHANGE >> DataBackUp終了コード.txt & goto end
:end
echo %str2% %DATE% %TIME% >> DataBackUp終了コード.txt
EXIT /B 0
ご自分の環境で使用したい場合は、以下、赤文字の送信元、送信先を変更をしてください。
送信元、送信先に関しては、フォルダパスをそのままコピー&ペーストをするのが確実です。
下記では、送信元 C:\Aフォルダ 送信先 E:\Bフォルダ になります。
robocopy /mir C:\Aフォルダ E:\Bフォルダ /copy:dat /xo /np /ndl /r:3 /w:0 > DataBackUp.log
ローカルドライブからファイルサーバ間のデータ同期
こちらのバッチは、送信元が、CドライブのAフォルダで、送信先が192.168.0.10のBackUpファイルサーバのBフォルダとなり、ローカルドライブからファイルサーバ間の同期になってます。
※コピーは右上の「Copy」をクリックしたら、コピーができます。
@set str1=開始:
@set str2=終了:
@set str3=バックアップフォルダ名:
@set str4=ステータス:
@cd C:\DataBackUp\log
echo %str1% %DATE% %TIME% > DataBackUp終了コード.txt
echo %str3% Test >> DataBackUp終了コード.txt
robocopy /mir C:\Aフォルダ "\\192.168.0.10\BackUp\Bフォルダ" /copy:dat /xo /np /ndl /r:3 /w:0 > DataBackUp.log
if errorlevel 16 echo %str4% FATAL ERROR >> DataBackUp終了コード.txt & goto end
if errorlevel 8 echo %str4% FAILED COPIES >> DataBackUp終了コード.txt & goto end
if errorlevel 4 echo %str4% MISMATCHES >> DataBackUp終了コード.txt & goto end
if errorlevel 2 echo %str4% EXTRA FILES >> DataBackUp終了コード.txt & goto end
if errorlevel 1 echo %str4% COPY SUCCESSFUL >> DataBackUp終了コード.txt & goto end
if errorlevel 0 echo %str4% NO CHANGE >> DataBackUp終了コード.txt & goto end
:end
echo %str2% %DATE% %TIME% >> DataBackUp終了コード.txt
EXIT /B 0
ご自分の環境で使用したい場合は、以下、赤文字の送信元、送信先を変更をしてください。
送信元、送信先に関しては、フォルダパスをそのままコピー&ペーストをするのが確実です。
下記では、送信元 C:\Aフォルダ 送信先 “\\192.168.0.10\BackUp\Bフォルダ” になります。
robocopy /mir C:\Aフォルダ "\\192.168.0.10\BackUp\Bフォルダ" /copy:dat /xo /np /ndl /r:3 /w:0 > DataBackUp.log
また、パスの種類は、以下の通りです。
- 送信元 C:\Aフォルダは、ローカルパス。
- 送信先 “\\192.168.0.10\BackUp\Bフォルダ”は、ネットワークパス。
送信元、送信先の記載における注意点は、以下の通りです。
- ローカルパスの場合は、ダブルクォーテーションにて、送信元や送信先を囲む必要はありません。
- ネットワークパスの場合は、ダブルクォーテーションにて、送信元や送信先を囲む必要があります。
設定の手順
1. Cドライブに、DataBackUpというフォルダを作成して、その配下に、bat、logというフォルダを作成します。
2. DataBackUp.batというバッチファイルを作成します。作成の仕方としては、テキストファイルにて、DataBackUpというテキストファイルを作成して、最後の拡張子を.txtから.batにします。
3. DataBackUp.batを選択して、右クリック、編集を選択します。
4. Robocopyバッチのテキストをコピー、開いたテキストファイルに貼り付け、保存して、閉じます。
こちらでは、ローカルドライブ間のデータ同期を貼り付けています。
コピー元のCドライブのAフォルダには、試験用データとして、100GBのデータがあり、コピー先のEドライブのBフォルダは空の状態です。
5.DataBackUp.batをダブルクリックして実行させます。
Robocopyバッチ試験
本試験は、フォルダAに10GB×10のファイル、合計100GBのデータをフォルダBにRobocopyした結果を記載します。
PC環境は以下の通りです。
- CPU:Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz 2.93 GHz
- RAM:16.0 GB
- ドライブは、C、EともSSD
試験結果
試験結果は、logフォルダにある「DataBackUp.log」と「DataBackUp終了コード.txt」を確認します。
DataBackUp.log を確認します。
------------------------------------------------------------------------------- ROBOCOPY :: Windows の堅牢性の高いファイル コピー ------------------------------------------------------------------------------- 開始: 2021年8月25日 7:18:51 コピー元 : C:\Aフォルダ\ コピー先 : E:\Bフォルダ\ ファイル: *.* オプション: *.* /NDL /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /NP /XO /R:3 /W:0 ------------------------------------------------------------------------------ 新しいファイル 10.0 g C:\Aフォルダ\Dummy1 新しいファイル 10.0 g C:\Aフォルダ\Dummy10 新しいファイル 10.0 g C:\Aフォルダ\Dummy2 新しいファイル 10.0 g C:\Aフォルダ\Dummy3 新しいファイル 10.0 g C:\Aフォルダ\Dummy4 新しいファイル 10.0 g C:\Aフォルダ\Dummy5 新しいファイル 10.0 g C:\Aフォルダ\Dummy6 新しいファイル 10.0 g C:\Aフォルダ\Dummy7 新しいファイル 10.0 g C:\Aフォルダ\Dummy8 新しいファイル 10.0 g C:\Aフォルダ\Dummy9 ------------------------------------------------------------------------------ 合計 コピー済み スキップ 不一致 失敗 Extras ディレクトリ: 1 0 1 0 0 0 ファイル: 10 10 0 0 0 0 バイト: 100.003 g 100.003 g 0 0 0 0 時刻: 0:08:08 0:08:08 0:00:00 0:00:00 速度: 219914983 バイト/秒 速度: 12583.636 MB/分 終了: 2021年8月25日 7:26:59
DataBackUp終了コード.txt を確認します。
開始: 2021/08/25 7:18:51.44 バックアップフォルダ名: Test ステータス: COPY SUCCESSFUL 終了: 2021/08/25 7:28:10.13
ステータスは、 COPY SUCCESSFUL で問題ないです。
時間も100GBコピーが約10分で完了しました。
SSD同士なので、早いですね。
また、ローカルドライブのSSDからファイルサーバのHDDへのコピーは、約45分でした。
Robocopyバッチをタスクスケジューラに登録して運用する記事も作成しました。
是非、ご参考ください。