亀より速く、鳥より高く。

ITエンジニア&農業手伝いの個人ブログ

【Windowsコマンド】robocopyコマンドで不足ファイルのみコピーする(/XO /XN /XC)※エビデンス付き※

またSharePoint絡み・・・。誰かがやってくれてたSharePointへのアップで、全部アップできてないことがわかった。しかもSharePoint側は既に更新されている。コピーできてるファイルは問題ないので不足分のみコピーするコマンドを作成し、テストした。

※参考にする場合は自己責任でお願いします※

コピー前の状態

f:id:kakumaru55:20210828151455p:plain

コピー前の状態①

f:id:kakumaru55:20210828151744p:plain

コピー前の状態②

「コピーされるよね」「コピーしてね」がコピーされて「上書きしないで」が上書きされずに、ディレクトリが作成さればOK。

コピーバッチファイル

******************************************

set logdir="C:\work"
set logfile="robocopyテスト.log"
set copy_dir_from="C:\work\A_コピー元フォルダ"
set copy_dir_to="C:\work\B_コピー先フォルダ"

robocopy /E /XC /XN /XO /DCOPY:DAT /COPY:DAT /R:24 /W:10 /TEE /LOG+:%logdir%\\%logfile% %copy_dir_from% %copy_dir_to%

pause

******************************************

他にもやり方あるかもしれないが、XC XN XO の3つを指定。その他のオプションは最近のお作法。\は実際には半角の「¥」マーク。ここにうまく書けないだけ。

コピーバッチ実行ログ

f:id:kakumaru55:20210828153712p:plain

コピーバッチ実行ログ

想定通りっぽい。

結果確認

f:id:kakumaru55:20210828153843p:plain

結果確認①

f:id:kakumaru55:20210828154125p:plain

結果確認②

足りなかったファイルのみコピーされたのでOK。実際にやってみるか。。

参考にしたサイト

www.pg-fl.jp

 おまけ(ルートコピー先フォルダが無かった場合の確認)

******************************************

set logdir="C:\work"
set logfile="robocopyテスト.log"
set copy_dir_from="C:\work\A_コピー元フォルダ"
set copy_dir_to="C:\work\C_コピー先フォルダ" ← このフォルダは無くても作成された

robocopy /E /XC /XN /XO /DCOPY:DAT /COPY:DAT /R:24 /W:10 /TEE /LOG+:%logdir%\\%logfile% %copy_dir_from% %copy_dir_to%

pause

******************************************

f:id:kakumaru55:20210828155415p:plain

おまけ実行ログ

新しいディレクトリの名前が表示されないので若干、ログではわかりずらい。

f:id:kakumaru55:20210828155707p:plain

結果確認①

f:id:kakumaru55:20210828155756p:plain

結果確認②