本日は、バッチコマンドで「robocopy」の使い方を紹介いたします。
robocopyは、バックアップやデータ移行で使うことが多いコマンドです。
使いこなすといろいろな場面で役に立つことになります。
たくさんのオプションがあり、とても便利です。
robocopyの構文
robocopy <source> <destination> [<file(s)>] [<options>]
<source>: コピー元のフォルダまたはファイルのパスを指定します。
<destination>: コピー先のフォルダまたはファイルのパスを指定します。
<file(s)>: コピーするファイルを指定するオプションです。省略可能で、省略した場合は全てのファイルをコピーします。
<options>: robocopyのオプションを指定します。
例えば、C:\sourceフォルダのすべてのファイルをD:\destinationフォルダにコピーする場合は、次のように入力します。
robocopy C:\source D:\destination /E
/Eオプションは、サブフォルダを再帰的にコピーすることを指定します。
robocopyのオプション
robocopyのオプションを記載します。
/S: サブディレクトリを含めてコピーしますが、空のサブディレクトリはコピーしません。
/E: サブディレクトリを含めてコピーします。
/Z: ネットワーク接続が遅い場合でも、再開できるようにファイルのコピーを中断・再開することができます。
/MOV: 移動元のファイルを削除します。
/MIR: ミラーリング(同期)モードでコピーします。コピー先にはコピー元と同じ内容になります。
/LOG: ログファイルにコピー操作の詳細を記録します。
/NP: 進捗情報を表示しません。
/R: 失敗時に再試行する回数を指定します。
/W: 再試行の間隔を指定します。
robocopy を使ったバッチファイル
robocopyを使用した簡単なバッチファイルの例です。
このバッチファイルでは、ローカルのC:\Sourceフォルダのすべてのファイルをネットワーク上の\\server\destinationフォルダにコピーします。
また、ログファイルを作成してコピー操作を記録します。
@echo off
set source=C:\Source
set destination=\\server\destination
set log=C:\Logs\robocopy.log
robocopy %source% %destination% /MIR /Z /LOG:%log%
setコマンドを使用して、変数source、destination、logを設定します。
次に、robocopyコマンドを使用して、sourceフォルダからdestinationフォルダにファイルをコピーします。
/MIRオプションは、コピー先のフォルダにはコピー元と同じ内容になるようにミラーリング(同期)モードでコピーすることを指定しています。
/Zオプションは、ファイルのコピーを中断・再開することができるようにするため、長時間かかるネットワークコピーの場合に有用です。
/LOGオプションを使用して、コピー操作の詳細を記録するログファイルを作成します。
まとめ
本日は、robocopyの使い方を解説しました。