robocopyを使ってフォルダやファイルのコピーと同期

2018.9.8

はじめに

Windowsのバッチでファイルをコピーしたいとなると、copyやxcopyを使っている人がいるのではないでしょうか。

コピー元とコピー先を同期させるようなシーンではrobocopyがデフォルトで使えて動作が高速なのでおすすめです。

基本形

robocopyの基本形です。

robocopy [コピー元] [コピー先] [オプション]

コピー元に指定したフォルダの内容を、コピー先へコピーします。この形が基本形になり、オプションを指定することで差分コピーや同期を行うことが出来ます。

コマンド例

robocopy [コピー元] [コピー先] /l

最初に覚えておくと便利なのが、/lオプションです。このオプションは実際にコピーを行わず、実行した結果どうなるのかを表示してくれます。間違ってコピーしてしまうと危険なことが有りまりますので、コマンドを組み上げたら、/lオプションを指定して実行して結果どうなるのかをよく確認するようにしましょう。

robocopy [コピー元] [コピー先] /s /e

/sを指定するとことでサブフォルダもコピー対象になります。/eを指定することで空のフォルダもコピー対象になります。結果、コピー元のフォルダに在るファイルとフォルダのすべてがコピー先へコピーされます。

robocopy [コピー元] [コピー先] /mir

/mirを指定すると、コピー元とコピー先のフォルダを同期します。これによりコピー元のフォルダとコピー先のフォルダの内容が同じになります。もともとコピー先にしかなかったファイルやフォルダは削除されます。

robocopy [コピー元] [コピー先] /log:[ログファイル名]

/log:を指定し、続けて任意のファイル名を着けると、robocopyの実行結果がログファイルに出力されます。 また、/log+:のようにプラスを付けて指定すると、ログファイルに指定したファイルが存在する場合、末尾に追記されるようになります。

robocopy [コピー元] [コピー先] /log:[ログファイル名] /tee

さらに、/teeを指定することで、画面上にも実行結果が表示されるようになります。

robocopy [コピー元] [コピー先] /b

/bを指定するとバックアップモードでの動作となります。このモードはコピー元のアクセス権に関係なくコピーを行いますので、権限設定しているフォルダやファイルを定期的にバックアップしたいときなどに使えそうです。

robocopy [コピー元] [コピー先] /move

/move粗指定すると、その名の通りフォルダやファイルを移動します。処理の内容としては、全てのファイルをコピーし終わったあとに、コピー元のファイルを削除する形になります。

最後に

robocopy /?

よく使いそうなコマンド例を紹介しましたが、他にもたくさんのオプションがあります。/?を指定することでrobocopyコマンドのヘルプを見ることが出来ますので、参考にしてみてはどうでしょうか。