このチュートリアルでは、robocopyを使ってソースから宛先にすべてのファイルおよびフォルダーをコピーする方法について説明します。 同じコマンドで、後でもう一度実行すると、変更されたファイルだけがコピー先にコピーされます。 また、コピー元からファイルが削除された場合、コピー先からも削除されます。 このコマンドは、すべての NTFS パーミッションとファイル属性も維持します。
このコマンドの典型的な使用シナリオは、大きなファイル共有をコピーすることです。 このコマンドを一度実行して大量のデータをコピーし、後でもう一度実行すれば、変更されたファイルだけをコピーするので、はるかに速くなります。
robocopy C:\source C:\dest /TEE /LOG+:c:\robolog.txt /MIR /copyall /zb /w:1 /r:2 /xo
まず、このコマンドの実行例を示し、次にコマンドを分解して各部が何を行うかを紹介します。 (コマンド プロンプトは必ず管理者として起動してください)
下の画像では、ソースと宛先のディレクトリが表示されています。 ソースには、データの入った複数のフォルダーがあります。
上記のロボコピーコマンドで、コピー元のフォルダをC:³³³、コピー先のフォルダをC:³³³として実行すると、コピー先のフォルダがコピー元と同じになっているのがわかります。 もう一度コマンドを実行するとどうなるか見てみましょう。
ソースから削除されたファイルは、デスティネーションからも削除されます。 また、コピー元に新しく追加されたファイルは、コピー先にコピーされます。
TEE – コマンドの出力をコンソール ウィンドウに表示し、さらに確認するためにログに書き込みます。
/LOG+c:\robolog.txt – ログを書き込む場所をコマンドに指示します。 1711>
/MIR – すべてのファイルとサブフォルダをコピーし、ソースに存在しないファイル/フォルダはコピー先から削除します。
/COPYALL – すべての NTFS パーミッションと属性 (セキュリティ権限、タイムスタンプ、オーナー情報…)をコピーします。 ファイルが使用中の場合、設定された時間後に再試行されます。
/W:1 – ファイルをコピーするとき、再試行の間に1秒待つことを指定します。
/R:2 – コピーに失敗したときの再試行回数を指定します。
/XO – コピー先のファイル/フォルダーが存在し、同じ日付であれば、古いファイル/フォルダーは除外します
/XO – コピー先のファイル/フォルダーは除外されます。