Robocopy は、Windows Vista 以降、Windows の標準部分になっています。このツールは、その堅牢性と信頼性がシステム管理者や IT プロフェッショナルから高く評価されています。他のツールでは処理が困難なプロジェクトや、エラー メッセージが表示されるプロジェクトのコピーは、多くの場合、Windows 10 で Robocopy を使用して正常に完了できます。Robocopy をまだ知らない場合は、その使用方法を見てみましょう。
ロボコピーとは何ですか?
Robocopy は、コピーとバックアップのために設計された Windows ツールです。プログラムは、Windows コマンド プロンプトに入力された特別なコマンドとパラメーターを使用して管理されます。ただし、経験の浅い Windows ユーザーでも、Robocopy 用の GUI ソフトウェアを使用できます。そのようなソフトウェアの 1 つは、無料の GUI ツール RoboMirror です。
ロボコピーのチュートリアル
Robocopy は最も多機能な Windows ネイティブ コピー ツールで、次に xcopy と copy が続きます。パラメータが 72 個あるため、不満はほとんどなく、ほぼすべてのバックアップを処理できます。このプログラムは、完全バックアップではなく、最近の変更のみをバックアップする増分バックアップを作成することもできます。このスペース効率の高いアプローチにより、クラウドおよびネットワークのバックアップ中の帯域幅やその他のリソースへの負担が軽減されます。
このツールは、比較的少ないコードでディレクトリ構造全体をミラーリングすることもできます。つまり、コピー操作やバックアップにサブディレクトリを含めることができます。これらのコードベースの機能は、Windows 10 に重点を置いたシステム イメージなど、他のバックアップ ルーチンへの優れた追加機能として機能します。また、rsync に加えて、または rsync の代替としてサーバー バックアップに使用することもできます。
Robocopy Backup のさまざまな機能と柔軟性には、ある程度の学習曲線が必要です。GUI ツールを使用する場合でも、初心者が効率的にバックアップを作成し、Windows 10 の Robocopy の可能性を最大限に活用できるようになる前に、プログラムに少し時間を費やす必要があります。ただし、単純なコピー タスクに関しては、初心者でもわかりやすいコマンド構文を使用して比較的早く作業を進めることができます。操作が単純であっても複雑であっても、Robocopy を使用するときは注意が必要です。ファイルが誤って削除されたり上書きされたりするリスクが常にあります。
Robocopy バックアップのコマンド構文
Windows 10 のすべてのコマンド ライン ツールと同様、Robocopy では特定のタスクを実行するために特別なコマンド構文が必要です。基本的な構造は次のとおりです。
1 |
robocopy <ソース> <宛先> [<ファイル>[...]] [<オプション>] |
パラメータ「source」はソース ディレクトリへのパスです。宛先ディレクトリへのパスは、「destination」パラメータで定義されます。「file」パラメータはコピーされるファイル用であり、プレースホルダを許可します。特定のファイル名の代わりに *.* を入力すると、ソース ディレクトリ内のすべてのファイル (サブディレクトリを除く) がコピーされます。特定のファイル タイプのすべてのファイルを含める場合は、ファイルの末尾にアスタリスクを組み合わせることができます。したがって、すべての Word 文書 (および Word 文書のみ) をコピーする場合、構文は次のようになります。
1 |
robocopy <ソース ディレクトリ> <ターゲット ディレクトリ> *.docx |
copy コマンドは、最後にオプションを追加して拡張できます。たとえば、完了するまでコピー試行を繰り返す頻度を定義できます。試行間の時間を定義することもできます。これらのパラメータにより、ツールの多用途性と堅牢性が大幅に向上します。これらは、介入する機会がなく、複雑なコピー操作が理由もなく中止されることが多い Windows エクスプローラーに比べて大幅に改善されています。
最も重要な Robocopy コマンド
以下に、比較的単純な Robocopy バックアップを実行するために使用できる最も重要なコマンドとオプションの概要を示します。次のセクションでは、これらのコマンドを実装する方法を例とともに示します。
/COPY:コピーフラグ[s] | コピー ファイルのプロパティ – 標準設定: /COPY:DAT – D: データ – S: セキュリティ情報 (NTFS アクセス制御リスト) – A: プロパティ – O: 所有者情報 – T: タイムスタンプ – U: 監査情報 (NTFS 監視) の使用権)。 |
/コピーオール | すべてのファイル情報をコピーします (COPY:DATSOU を置き換えます) |
/NOコピー | ファイル情報をコピーしない (通常は /PURGE と組み合わせて使用されます) |
/パージ | ターゲット ディレクトリ内のファイルとディレクトリがソース ディレクトリに存在しない場合は、それらを削除します。 |
/MIR | ミラー ディレクトリ ツリー (/E + /PURGE の組み合わせと同等) |
/MON:n | n 回の変更後に Robocopy を再度実行します (自動バックアップのバックグラウンド操作)。 |
/ワード:n | Robocopy は n 分後に再度実行されます (自動バックアップのためのバックグラウンド操作) |
/RH: うーん、うーん | Robocopy がアクティブになる期間を定義します |
/XF | 特定のファイルタイプを除外する |
/XD | 特定のディレクトリを除外する |
/R:n | 失敗したコピー操作の再試行回数を定義します (標準設定: 1,000,000) |
/W:n | 再試行間の待機時間を秒単位で定義します。標準設定は 30 (次のコピー試行まで 30 秒待機します) |
/L | バックアップ ファイルの一覧表示 (テスト実行、バックアップは実行されません) |
/ログ: | バックアップまたは同期プロセスごとに新しいログ ファイルにステータスを記録します。 |
/LOG+: | 既存のログ ファイルにステータスを追加する |
/TEE | 情報を画面とログファイルに出力します |
/MOV | コピー後にソース ディレクトリからファイルを移動および削除する |
/動く | ファイルとディレクトリはコピー後に移動され、ソース ディレクトリから削除されます。 |
ロボコピー/? | コマンド プロンプトで Robocopy ヘルプ ガイドを開く |
ロボコピーを開く方法
Robocopy は、Windows コマンド プロンプト (cmd.exe) を使用して動作します。コマンド プロンプトにアクセスするには、Windows 10 の [ファイル名を指定して実行] ダイアログを開きます。
1.【Win】+【R】キーを押して実行ウィンドウを開きます。
2.フィールドに「cmd」と入力します
。 3.「OK」を押します。
コマンド プロンプトが開き、Robocopy のバックアップおよびコピー操作のコマンド構文を入力できます。
Robocopy でバックアップを作成する方法
Robocopy は、日常のバックアップ ルーチンに最適です。このセクションでは、パラメーターとオプションを設定する方法を示し、必要なコードの例を示します。
ミラーディレクトリ
Windows 10 の Robocopy で最も一般的に使用されるオプションの 1 つは、ソース ディレクトリの完全バックアップを作成するミラー機能 (/MIR) です。
1 |
robocopy C:\Users\XU\Desktop\test T:\ /MIR |
この例では、すべてのサブディレクトリ (空のものも含む) を含む、ソース ディレクトリ全体 (「test」という名前) がターゲット ドライブ (T:\) にコピーされます。ソース ディレクトリは、現在アクティブなユーザー プロファイル (この場合は Maria のプロファイル) のデスクトップにあります。
試運転による事前確認
どのファイルがミラーコマンドによってキャプチャされるか、またエラーが発生するかどうかをテストしたい場合は、パラメータ /L を追加できます。コマンド ラインはプロセスをログに記録し、エラーを表示しますが、コピーは作成されません。
1 |
robocopy C:\Users\XU\Desktop\test T:\ /MIR /L |
Robocopy バックアップに対する微調整された制御
Robocopy バックアップをさらに制御するには、コピーの試行回数 (R:3 は 3 回の試行を意味します) と試行間の待機時間 (W:2 は 2 秒を意味します) を定義できます。さらに、バックアップを追跡するファイルを作成できます。
1 |
robocopy C:\Users\XU\Desktop\test T:\ /MIR /R:3 /W:2 /LOG+:Z:\LogFiles\logfile.log |
この例では、コピー操作プロトコル (logfile.log) が「LogFiles」という名前のディレクトリに作成されます。ログ ディレクトリがすでに存在している必要があることに注意してください。存在しないと、コピー プロセスが中止されます。
特定のファイルまたはファイル タイプを除外する場合は、パラメータ /XF (ファイルを除外) を使用できます。
1 |
robocopy C:\Users\XU\Desktop\test T:\ /MIR /XF *.docx |
XD オプション (ディレクトリの除外) を使用して、ディレクトリ全体を除外できます。問題のディレクトリ (「マイ ドキュメント」) にはスペースが含まれているため、引用符で囲みます。
1 |
robocopy C:\Users\XU\Desktop\test T:\ /MIR /XD "マイ ドキュメント" |
注
Windows 10 で Robocopy を使用してコピー操作を行うには、正確なパスを指定する必要があります。パスの一部にスペースが含まれる場合は、パスを引用符で囲む必要があります。
しかし、それよりもさらに細かく調整されます。特定のファイル属性を含めたり除外したりすることができます。これは、オプション /COPY:copyflag[s] を使用して実行されます。Robocopy は、デフォルトのバックアップ ファイルの内容 (D = データ)、読み取り専用または非表示などの属性 (A = 属性)、およびタイムスタンプ (T = タイムスタンプ) としてコマンド /COPY:DAT を使用します。タイムスタンプには、作成日、変更日、最後に開いた日に関する情報が含まれています。この情報は、最近変更されたファイルとディレクトリにのみ適用される必要があるため、増分バックアップにとって重要です。もう 1 つのパラメータは S (=security) で、NTFS アクセス権を転送します。
個々のコピー フラグを除外すると、たとえば、ターゲット システムで特定のセキュリティ権限が正しく設定されていないため、コピー操作が失敗したり不完全になったりする場合に役立ちます。この場合、S copy フラグの使用を避けることができます。たとえば、バックアップ コピーに読み取り専用属性を複製するには、フラグ A を含めます。ファイルのコンテンツ、属性、タイムスタンプを転送する場合、コードは次のようになります。
1 |
robocopy C:\Users\XU\Desktop\test T:\ /MIR /COPY:DAT |
特に長時間のバックアップ プロセスが関係する場合は、/Z を使用してバックアップをステージングするとよいでしょう。Robocopy を再起動する必要がある場合、中断したところから再開されます。処理が複数回中断されても問題ありません。このアプローチでは、大きなファイルを再バックアップする必要がなくなるため、時間とリソースが節約されます。
自動化された Robocopy バックアップ
Robocopy の強みの 1 つは、バッチ ファイル経由でバックアップを実行できることです。デスクトップ上にバッチ スクリプトを作成し、マウスを 1 回クリックするだけで起動することも、Windows の自動起動ディレクトリにバッチ スクリプトを配置して、システムが起動するたびにバックアップを実行することもできます。Autostart フォルダーに移動するには、Windows エクスプローラーに「Autostart」という単語を入力し、Enter キーを押します。または、[Windows] + [R] を使用して [ファイル名を指定して実行] ウィンドウを開き、そこに「shell:startup」と入力して [OK] をクリックすることもできます。次に、マウスを使用してバッチ ファイルをディレクトリにドラッグします。バッチ ファイルのコピーまたはショートカット リンクも機能します。
バックアップを自動化するもう 1 つの方法は、ソース ディレクトリを永続的に監視する Robocopy の監視機能です。変更が加えられた場合は、自動的にバックアップされます。Robocopy は、選択したスケジュール (たとえば、1 時間に 1 回) で実行したり、特定の時間 (たとえば、午後 6 時) に実行するように設定することもできます。オプション /MON:n (n 回の変更後にバックアップをアクティブ化) または /MOT:n (n 分後にバックアップをアクティブ化) を使用して監視を設定できます。特定の時点の /RH:hhmm-hhmm。/MON と /MOT を組み合わせることもできます。
1 |
robocopy C:\Users\XU\Desktop\test T:\ /MIR /R:3 /W:4 /LOG+:Z:\LogFiles\logfile.log /MON:1 /MOT:25 |
この例では、少なくとも 1 つの変更が加えられた場合、Robocopy は 25 分後にバックアップを実行します。変更はログ ファイルに記録されます。特定の時間を入力しない場合、Robocopy はデフォルト設定でディレクトリを自動的にチェックします (必要に応じて 1 分後にチェックしてバックアップします)。新しいバックアップを開始する前など、Robocopy のアクティビティを詳しく調べたい場合は、/TEE を使用してコマンド プロンプトの画面にログを表示できます。
注:
継続的なバックグラウンド アクティビティは、たとえば、大きなファイルがネットワーク上またはクラウド上で頻繁に転送される場合など、リソースに負荷をかける可能性があります。自動化は控えめに使用し、更新とバックアップのサイクルを考慮してください。バックアップ ディレクトリを定期的にチェックすることをお勧めします (特に、新しいバックアップ操作を開始するときは)。こうすることで、Robocopy が何を行っているのか、不要なバックアップ、望ましくないバックアップ、またはバグのあるバックアップがバックグラウンドで実行されているかどうかを判断できます。