

robocopyは、Windows標準搭載のフォルダ同期ツールです。
簡単に言ってしまえば、Windowsの便利なファイルのコピー機能です。
普段、ファイルをコピーするときには、以下のような方法で対応することが多いかと思います。
- 「Ctrl+C」でコピーして、「Ctrl+V」で貼り付ける
- ファイルを右クリックして「コピー」を選択し、貼り付けたい場所で「貼り付け」を押す
ファイルをコピーしたいだけなら、直感的に操作できる分、普通のコピーの方が便利ですが、以下のように少しインテリジェントなコピーをしたいときには、robocopyを利用すると非常に便利です。
- 特定のファイル、フォルダ名のデータをコピー対象から外したい
- 容量が大きいファイルはコピー対象から外したい
- 古いファイル、新しいファイルのみコピー対象としたい
- 元のファイルのアクセス権を引き継いでコピーしたい
robocopyのよく使うオプション【Windowsの便利なコピー機能】
robocopyの基本形式
robocopyの基本形式は以下の通りです。
コマンドプロンプトで、コピー元、コピー先、オプションを指定することで実行できます。
1 2 3 |
#robocopy [コピー元] [コピー先] (オプション) robocopy c:\copyFrom d:\copyTo |
「Ctrl+C」でコピーして、「Ctrl+V」で貼り付けるような基本的なコピーは、オプションなしのこのコマンドで実行できます。
あとは、コピー時の細かい動作をオプションで指定してあげるだけです。
フォルダをコピー対象にする(/S, /E)
オプションを指定していないデフォルトの状態では、コピー対象はファイルのみで、フォルダはコピー対象外です。
フォルダをコピー対象にするには、『/S』、『/E』のオプションを使用します。
『/S』、『/E』の違いは、空のフォルダをコピー対象とするか否かです。
『/S』は、空のフォルダをコピー対象外とし、『/E』は、空のフォルダもコピー対象とします。
1 2 3 4 5 |
#空のフォルダ以外のフォルダをコピー対象とする robocopy c:\copyFrom d:\copyTo /S #空のフォルダを含めて全フォルダをコピー対象とする robocopy c:\copyFrom d:\copyTo /E |
特定のファイル名、拡張子のデータのみコピー
特定のファイル名、拡張子のファイルのみコピーする場合は、以下のようにワイルドカードを用いて、ファイル名、拡張子を指定すれば良いです。
1 2 3 4 5 6 7 8 |
#特定の拡張子のファイルのみコピー robocopy c:\copyFrom d:\copyTo *.txt #特定の拡張子のファイルのみコピー(複数指定可能) robocopy c:\copyFrom d:\copyTo *.txt *.jpg #特定のファイル名のファイルのみコピー(copyから始まるファイル) robocopy c:\copyFrom d:\copyTo copy* |
特定のファイル・フォルダ名、拡張子以外のデータのみコピー(/XD, /XF)
特定のフォルダ名のフォルダをコピーの対象から外すときには、『/XD』のオプションを利用します。
また、特定のファイル名のファイルをコピーの対象から外すときには、『/XF』のオプションを利用します。
1 2 3 4 5 |
#特定のフォルダ名のフォルダ以外をコピー robocopy c:\copyFrom d:\copyTo /E /XD #特定のフォルダ名のフォルダ以外をコピー robocopy c:\copyFrom d:\copyTo /XF nocopy.txt |
ファイルの更新日付でコピー対象を限定(/MAXAGE, /MINAGE)
ファイルの更新日付でコピー対象を限定するときは、『/MAXAGE』、『 /MINAGE』のオプションを利用します。
『/MAXAGE』は、/MAXAGE:YYYYMMDDと指定することで、更新日付がYYYYMMDDより新しいファイルのみコピーの対象とします。
『/MINAGE』は、/MINAGE:YYYYMMDDと指定することで、更新日付がYYYYMMDDより古いファイルのみコピーの対象とします。
1 2 3 4 5 |
#ファイルの更新日付が2020/1/1より新しいファイルのみコピー robocopy c:\copyFrom d:\copyTo /MAXAGE:20200101 #ファイルの更新日付が2020/1/1より古いファイルのみコピー robocopy c:\copyFrom d:\copyTo /MINAGE:20200101 |
ファイルの容量でコピー対象を限定(/MAX, /MIN)
ファイルの容量でコピー対象を限定するときには、『/MAX』、『/MIN』のオプションを利用します。
『/MAX』は、/MAX:nと指定することで、容量がnバイトより大きいファイルをコピー対象から除外できます。
『/MIN』は、/MIN:nと指定することで、容量がnバイトより小さいファイルをコピー対象から除外できます。
1 2 3 4 5 |
#ファイルの容量が1024バイトより大きいファイルをコピー対象から除外 robocopy c:\copyFrom d:\copyTo /MAX:1024 #ファイルの容量が1024バイトより小さいファイルをコピー対象から除外 robocopy c:\copyFrom d:\copyTo /MIN:1024 |
差分のファイルのみにコピー対象を限定(/XO)
コピー元とコピー先のフォルダを比較して、コピー先に存在しないファイル、コピー先に存在するが更新日付がコピー元の同名のファイルよりも古いファイルのみをコピー対象とする場合には、『/XO』のオプションを利用します。
1 2 3 |
#コピー元とコピー先のファイル差分をコピー #(コピー先に存在しないもしくは、存在していてもコピー元の同名のファイルよりも更新日付が古いファイルのみをコピー対象とする) robocopy c:\copyFrom d:\copyTo /XO |
robocopyのよく使うオプションのまとめ
Windows標準搭載のフォルダ同期ツールのrobocopyをご紹介しました。
全てのコマンドやオプションを覚えずとも、こんな感じの機能があったなと頭の片隅に置いておけば選択肢が広がるかと思います。
コメントを書く