コマンドプロンプト – robocopyコマンドの使い方 – フォルダ内容を同期する
robocopyは、Windowsのコマンドプロンプトで使用できる高機能なファイルコピーコマンドです。
フォルダの内容を同期するには、基本的に「robocopy コピー元 コピー先 /MIR」を使用します。
/MIRオプションは、コピー元とコピー先のフォルダをミラーリング(同期)し、コピー元にないファイルをコピー先から削除します。
robocopyはネットワーク越しのコピーや大容量ファイルの転送にも適しており、エラー耐性や再試行機能も備えています。
robocopyコマンドとは
robocopy(Robust File Copyの略)は、Windowsに標準搭載されているコマンドラインツールで、ファイルやフォルダを効率的にコピーするための強力な機能を提供します。
特に、大量のデータを扱う際や、ネットワーク越しにファイルを転送する場合に、その性能を発揮します。
主な特徴
- 耐障害性: コピー中にエラーが発生しても、再試行を行うことができるため、信頼性が高い。
- 差分コピー: 既に存在するファイルと比較し、変更されたファイルのみをコピーすることが可能。
- 多様なオプション: コピーの動作を細かく制御できる多くのオプションが用意されている。
例えば、以下のコマンドは、C:\Sourceフォルダの内容をD:\Destinationフォルダにコピーします。
robocopy C:\Source D:\Destinationこのコマンドを実行すると、C:\Source内の全てのファイルとフォルダがD:\Destinationにコピーされます。
robocopyコマンドの基本構文
robocopyコマンドの基本構文は以下の通りです。
robocopy <ソース> <デスティネーション> [<ファイル>] [オプション]各要素の説明
| 要素 | 説明 |
|---|---|
<ソース> | コピー元のフォルダパス |
<デスティネーション> | コピー先のフォルダパス |
<ファイル> | コピーするファイルの指定(省略可) |
[オプション] | コピー動作を制御するためのオプション(省略可) |
以下は、特定のファイルをコピーする例です。
robocopy C:\Source D:\Destination *.txtこのコマンドは、C:\Sourceフォルダ内の全ての.txtファイルをD:\Destinationフォルダにコピーします。
オプションの例
robocopyには多くのオプションがありますが、いくつかの代表的なものを以下に示します。
| オプション | 説明 |
|---|---|
/E | 空のフォルダも含めてコピーする |
/MIR | ソースとデスティネーションをミラーリングする(削除も含む) |
/R:n | コピー失敗時の再試行回数を指定する |
/W:n | 再試行の待機時間を指定する(秒単位) |
これらのオプションを組み合わせることで、より柔軟なファイルコピーが可能になります。
フォルダ内容を同期するための基本的な使い方
robocopyを使用してフォルダの内容を同期する際の基本的な手順を解説します。
ここでは、ソースフォルダとデスティネーションフォルダの内容を一致させる方法を紹介します。
基本的なコマンド
以下のコマンドを使用して、フォルダの内容を同期できます。
robocopy C:\Source D:\Destination /Eこのコマンドは、C:\Sourceフォルダの全てのファイルとサブフォルダをD:\Destinationフォルダにコピーします。
/Eオプションを使用することで、空のフォルダも含めてコピーされます。
ミラーリングの使用
フォルダの内容を完全に同期させるためには、/MIRオプションを使用することが効果的です。
このオプションは、ソースフォルダとデスティネーションフォルダをミラーリングし、ソースに存在しないファイルをデスティネーションから削除します。
robocopy C:\Source D:\Destination /MIR注意点
/MIRオプションを使用する際は、デスティネーションフォルダ内のファイルが削除される可能性があるため、注意が必要です。- 同期を行う前に、デスティネーションフォルダのバックアップを取ることをお勧めします。
以下は、特定のフォルダを同期する例です。
robocopy C:\Project D:\Backup /MIRこのコマンドは、C:\Projectフォルダの内容をD:\Backupフォルダにミラーリングします。
これにより、両者の内容が完全に一致するようになります。
robocopyのオプションを活用したフォルダ同期
robocopyは多くのオプションを提供しており、これを活用することでフォルダ同期の精度や効率を向上させることができます。
ここでは、特に役立つオプションをいくつか紹介します。
主要なオプション
| オプション | 説明 |
|---|---|
/E | 空のフォルダも含めて全てのファイルをコピー |
/MIR | ソースとデスティネーションをミラーリング(削除も含む) |
/R:n | コピー失敗時の再試行回数を指定(デフォルトは1,000回) |
/W:n | 再試行の待機時間を指定(デフォルトは30秒) |
/XD | 指定したフォルダを除外してコピー |
/XF | 指定したファイルを除外してコピー |
/LOG | ログファイルを作成し、コピーの詳細を記録する |
例:特定のファイルを除外する
特定のファイルを除外してフォルダを同期したい場合、/XFオプションを使用します。
以下のコマンドは、.tmpファイルを除外して同期を行います。
robocopy C:\Source D:\Destination /E /XF *.tmp例:特定のフォルダを除外する
特定のフォルダを除外する場合は、/XDオプションを使用します。
以下のコマンドは、C:\Source\ExcludeFolderを除外して同期を行います。
robocopy C:\Source D:\Destination /E /XD C:\Source\ExcludeFolderログの作成
コピーの詳細を記録したい場合は、/LOGオプションを使用します。
以下のコマンドは、コピーの結果をlog.txtファイルに記録します。
robocopy C:\Source D:\Destination /E /LOG:log.txtこれらのオプションを組み合わせることで、robocopyを使ったフォルダ同期をより柔軟に、かつ効率的に行うことができます。
特に大規模なデータの管理やバックアップにおいて、その効果を実感できるでしょう。
応用例:robocopyを使った高度な同期
robocopyは基本的なフォルダ同期だけでなく、さまざまなシナリオに応じた高度な同期を実現するための機能を備えています。
ここでは、いくつかの応用例を紹介します。
1. 増分バックアップの実施
増分バックアップを行うことで、前回のバックアップ以降に変更されたファイルのみをコピーすることができます。
これには、/MAXAGEオプションを使用します。
以下のコマンドは、過去7日以内に変更されたファイルをコピーします。
robocopy C:\Source D:\Backup /E /MAXAGE:72. ネットワーク越しのフォルダ同期
ネットワーク上のフォルダを同期する場合、UNCパスを使用してrobocopyを実行できます。
以下のコマンドは、ネットワーク上のフォルダを同期します。
robocopy \\NetworkPC\SharedFolder D:\LocalBackup /E3. 特定のファイルタイプのみを同期
特定のファイルタイプ(例えば、画像ファイルやドキュメントファイル)だけを同期したい場合、/XFオプションを使用して他のファイルを除外します。
以下のコマンドは、.jpgと.pngファイルのみをコピーします。
robocopy C:\Source D:\Images /E /XF *.* /XD *.* /XF *.jpg *.png4. 複数のフォルダを一度に同期
複数のフォルダを一度に同期する場合、バッチファイルを作成して複数のrobocopyコマンドを実行することができます。
以下はその例です。
@echo off
robocopy C:\Source1 D:\Destination1 /E
robocopy C:\Source2 D:\Destination2 /E
robocopy C:\Source3 D:\Destination3 /E5. スケジュールされたバックアップ
Windowsのタスクスケジューラを使用して、定期的にrobocopyを実行することができます。
これにより、自動的にバックアップを行うことが可能です。
タスクスケジューラで新しいタスクを作成し、アクションとして上記のrobocopyコマンドを指定します。
これらの応用例を活用することで、robocopyを使ったフォルダ同期をさらに効果的に行うことができます。
特に、バックアップやデータ管理のニーズに応じて、柔軟に対応できる点がrobocopyの大きな魅力です。
robocopyのエラーと対処法
robocopyを使用する際に発生する可能性のあるエラーと、その対処法について解説します。
エラーの原因を理解し、適切に対処することで、スムーズなファイルコピーを実現できます。
よくあるエラーとその対処法
| エラーコード | 説明 | 対処法 |
|---|---|---|
| 1 | コピー成功(警告あり) | 警告内容を確認し、必要に応じて対処する。 |
| 2 | コピー成功(ファイルが変更された) | 変更されたファイルを確認し、再度コピーを実行する。 |
| 3 | コピー失敗(ファイルが見つからない) | ソースパスを確認し、ファイルが存在するか確認する。 |
| 5 | アクセスが拒否されました | 管理者権限でコマンドプロンプトを実行する。 |
| 87 | 無効なパラメータ | コマンドの構文やオプションを再確認する。 |
| 123 | パスが無効 | ソースまたはデスティネーションのパスを確認する。 |
エラーの詳細確認
robocopyは、エラーが発生した場合に詳細なエラーメッセージを表示します。
これにより、問題の特定が容易になります。
エラーメッセージをよく読み、どのファイルやフォルダに問題があるのかを確認しましょう。
ログファイルの活用
エラーの原因を追跡するために、/LOGオプションを使用してログファイルを作成することが有効です。
以下のコマンドは、コピーの詳細をlog.txtに記録します。
robocopy C:\Source D:\Destination /E /LOG:log.txtログファイルを確認することで、エラーの発生箇所や原因を特定しやすくなります。
再試行の設定
robocopyには、コピー失敗時に再試行を行うオプションがあります。
/R:nオプションを使用して再試行回数を指定し、/W:nオプションで待機時間を設定できます。
以下のコマンドは、3回再試行し、各試行の間に5秒待機します。
robocopy C:\Source D:\Destination /E /R:3 /W:5robocopyを使用する際には、エラーが発生することがありますが、適切な対処法を知っておくことで、問題を迅速に解決できます。
エラーメッセージやログファイルを活用し、必要に応じて再試行の設定を行うことで、よりスムーズなファイルコピーが可能になります。
まとめ
この記事では、robocopyコマンドの基本的な使い方から、フォルダの同期、エラーの対処法まで幅広く解説しました。
特に、robocopyの多様なオプションを活用することで、効率的かつ柔軟なファイルコピーが可能になることがわかりました。
これを機に、実際にrobocopyを使って自分のデータ管理やバックアップの方法を見直してみてはいかがでしょうか。