ファイルサーバー移行時に使うrobocopyバッチ。
以下、旧サーバー(192.168.1.1)のD:\ドキュメントから新サーバー(NEWSV)のD:\ドキュメントへミラーする例
1 | @echo off |
2 | set time2=%time: =0% |
3 | set logfile=”c:\work\robocopy\robocopy_log\newsv_%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time:~3,2%%time:~6,2%_ドキュメント.log” |
4 | set strHost=%COMPUTERNAME% |
5 | rem 実行サーバが新サーバであれば実行 |
6 | if %strHost%==NEWSV ( |
7 | robocopy \192.168.1.1\D$\ドキュメント D:\ドキュメント /MIR /DCOPY:DAT /B /COPYALL /NP /R:0 /LOG:%logfile% |
8 | ) else ( |
9 | echo “実行サーバが違います” > c:\mwork\robocopy\robocopyerror.log |
10 | ) |
■解説
・2-3行名:logファイルは実行した日付時刻が自動で付与されるように変数設定
※時刻が一桁の場合空白ができないように対処
・4行目:実行するコンピューター名を変数で定義
※もし間違って旧サーバーで実行すると大変なことになるため。。
・6行目:if文でコンピューター名を判定
・7行目:robocopyのコマンド
■その他 参考
・robocopyのオプション
/vを付与すると詳細モードでログ表示される。
/W:1でリトライまでの待機時間を指定 W:1は1秒 ※R:0でリトライなしにしているので不要
■注意
コピー元がルートドライブ(C:\やD:\)でコピー先がフォルダの場合、隠しファイルになってコピーされる。ルートドライブは隠し属性が付与されている為、コピー先でも隠し属性が付与された状態になる。
対応としては以下コマンドを合わせてバッチの中に組み込む必要がある。
attrib -s -h D:\backup\d-drive