
robocopyコマンドとは?
robocopy
(Robust File Copy)は、Windowsでファイルやディレクトリのコピーや移動を行うためのコマンドです。名前の通り、”robust”(堅牢)なコピー機能を持ち、ネットワークや大規模なファイル転送に対応しています。標準のcopy
コマンドやxcopy
コマンドよりも高機能で、エラー処理や再試行機能を持つため、特に信頼性が重要な場面で有効です。
主な用途
- ファイルやフォルダのバックアップ: データの同期や差分コピーを行う際に非常に役立ちます。
- ネットワーク越しのファイル転送: ネットワーク経由のコピーを効率的に行うことができ、途中で中断しても再開が可能。
- ディレクトリのミラーリング: ソースディレクトリと同一のコピー先ディレクトリを作成することができます。
robocopyコマンドの使い方
robocopy
コマンドは、基本的にコピー元のディレクトリとコピー先のディレクトリを指定して実行します。また、多くのオプションを利用することで、コピー動作を柔軟に制御できます。
基本構文
robocopy <source> <destination> [<file>] [<options>]
パラメーター | 説明 |
---|---|
<source> | コピー元ディレクトリのパスを指定します。 |
<destination> | コピー先ディレクトリのパスを指定します。 |
<file> | コピーするファイル名を指定します(ワイルドカードも使用可能)。指定しない場合は*.* が適用されます。 |
<options> | robocopy コマンドに使用するオプションを指定します。 |
主なオプション
オプション | 説明 |
---|---|
/s | サブディレクトリをコピー(空のディレクトリは除外)。 |
/e | 空のディレクトリも含めてサブディレクトリをコピー。 |
/mir | ソースディレクトリとコピー先ディレクトリをミラーリングします。/e と/purge の組み合わせと同じです。 |
/z | 中断から再開できるモードでコピー。 |
/b | バックアップモードでファイルをコピー。 |
/copyall | ファイルのすべてのプロパティ(データ、属性、タイムスタンプ、ACL、所有者情報、監査情報)をコピー。 |
/sec | セキュリティ情報(ACL)も一緒にコピー。 |
/purge | コピー先に存在していないファイルやフォルダを削除。 |
/mov | ファイルをコピーし、ソースから削除(移動)。 |
/mt | マルチスレッドコピー。デフォルトは8スレッドですが、/mt:n で指定可能。 |
/log:<ログファイル> | ログファイルを作成し、コピーの詳細を記録。 |
使用例
1. 単純なディレクトリコピー
robocopy C:\SourceFolder C:\DestinationFolder
- 説明:
C:\SourceFolder
の内容をC:\DestinationFolder
にコピーします。サブディレクトリは含まれません。
2. サブディレクトリも含めたコピー
robocopy C:\SourceFolder C:\DestinationFolder /e
- 説明:
C:\SourceFolder
のサブディレクトリも含め、空のディレクトリもすべてC:\DestinationFolder
にコピーします。
3. 中断から再開可能なコピー
robocopy C:\SourceFolder C:\DestinationFolder /z
- 説明: 再開可能なモードでファイルをコピーします。ネットワークが一時的に切断された場合でも再開が可能です。
4. ディレクトリのミラーリング
robocopy C:\SourceFolder C:\DestinationFolder /mir
- 説明:
C:\SourceFolder
の内容をC:\DestinationFolder
にミラーリングします。コピー先に存在しないファイルやフォルダは削除されます。
5. セキュリティ情報を含めたコピー
robocopy C:\SourceFolder C:\DestinationFolder /sec
- 説明: ファイルのセキュリティ情報(ACL)も一緒にコピーします。
robocopyコマンドの活用例
- 大規模なバックアップ: 複数のサーバー間やネットワーク越しで大量のデータを安全にバックアップする際に便利です。特に、再起動やエラーに強いため、大規模なシステムでも安定して運用できます。
- ファイル同期: 特定のフォルダ間でファイルの同期を行い、常に最新の状態を保つことが可能です。定期的に実行することで、システムの信頼性を向上させます。
- ディレクトリのミラーリング: サーバーのバックアップやリストア作業で、ソースディレクトリと完全に一致するディレクトリ構造を作成します。
robocopyコマンドを使う際の注意点
- ミラーリングに注意:
/mir
オプションを使うと、コピー先に存在しないファイルが削除されるため、誤ってデータを削除しないように注意が必要です。特に、バックアップやリストアの際には慎重に扱う必要があります。 - ネットワーク負荷: 大規模なファイルコピーや移動では、ネットワークに負荷がかかるため、必要に応じて帯域制限を設定することを検討しましょう。
/ipg
オプションでパケット間の遅延を設定できます。
よくある質問とその回答(FAQ)
Q. robocopyは非推奨なのでしょうか?
→ いいえ。現在もWindowsで正式にサポートされているコマンドであり、非推奨ではありません。ただし、データ重複除去が有効なボリュームでは一部オプションの使用に注意が必要です。
Q. robocopyと通常のコピー(Ctrl+Cやcopyコマンド)の違いは?
→ robocopyは、差分コピーや再試行機能、ログ記録などの高度なオプションが利用可能で、処理の安定性や自動化に優れています。大量ファイルのバックアップなどに適しています。
Q. robocopyとxcopyの違いは?
→ xcopyよりもrobocopyの方が高機能で、マルチスレッド処理・エラー処理・コピー制御に対応しています。xcopyは将来的に非推奨になる可能性もあるため、robocopyの利用が推奨されます。
Q. robocopyはなぜ早いのでしょうか?
→ robocopyは、マルチスレッド処理(/MT)やエラーリトライ機能を活用することで、高速かつ安定したコピー処理を実現しています。
Q. robocopyの戻り値が8になるのはどういう意味ですか?
→ 戻り値8は「一部のファイル・フォルダーで失敗が発生した」ことを示します。致命的なエラーではなく、ログを確認して内容を精査することが推奨されます。
Q. robocopyで使用されるプロトコルは何ですか?
→ robocopyは、SMB(Server Message Block)プロトコルを使用してファイル共有経由でデータを転送します。ネットワーク先がSMBをサポートしている必要があります。
Q. robocopyの必須オプションは何ですか?
→ 最低限必要なのはコピー元とコピー先のパスですが、以下のオプションがよく使われます:
/E
:サブディレクトリをすべてコピー(空も含む)/Z
:再開可能なモードでコピー/MT
:マルチスレッドで高速コピー
Q. robocopyの処理を途中で止めるには?
→ 実行中にCtrl + C
を押すことで中断可能です。また、バッチ処理などで運用している場合は、タスクスケジューラやプロセス管理から停止することもできます。
Q. robocopyの結果が3になるのはなぜですか?
→ 戻り値3は「コピー元とコピー先のファイルに差分があったが、処理は成功した」ことを意味します。異常ではなく正常動作の範囲内です。
Q. robocopyの正式名称は?
→ Robust File Copy(堅牢なファイルコピー)の略称で、「信頼性の高いファイルコピー機能を持つコマンド」という意味が込められています。
関連コマンド
- xcopyコマンドの使い方とファイルコピー:
xcopy
コマンドを使って、ファイルやディレクトリをコピーする方法を紹介します。 - moveコマンドの使い方とファイル移動:
move
コマンドを使って、ファイルやディレクトリを移動しつつ、名前変更を行う方法を解説します。
まとめ
robocopy
コマンドは、信頼性が高く、効率的にファイルをコピー・移動できるWindowsの強力なツールです。特に大規模なバックアップやディレクトリのミラーリングに最適で、ネットワーク越しでも中断から再開可能なコピーができるため、安定したファイル操作が可能です。さまざまなオプションを駆使して、ファイル管理やシステムメンテナンスを効率化しましょう。

最後までお読みいただきありがとうございます。
コメント