以下の内容はhttps://m-hiyama-memo.hatenablog.com/entry/2024/09/17/140431より取得しました。


robocopy の使い方 2024

参考

自分の過去記事:

過去記事から:

  • /xo オプションが必須。
  • /xf オプションで除外ファイルを指定できる。
  • 移動のときは、/move オプション。
  • /max: オプションで巨大ファイルを操作しないこともできる。

最近、PC内蔵ディスクからUDBメモリドライブに次の再帰ミラーリングコピーをした。

robocopy C:\Users\m-hiyama\AppData D:\m-hiyama\AppData /log+:D:\20240914-01.log /DCOPY:DAT /R:1 /W:3 /NP /TEE /FP /NDL /MIR /Z

外部へのミラーリング・ダンプと、内部での通常コピーでは要件が違うことに注意。

参考URL:

コマンドラインオプション

オプションは:

実際に使ったオプションは:

  1. 除外
    1. /xo 宛先より古いソース ディレクトリ ファイルが、コピーから除外されます。
    2. /xc タイムスタンプは同じであるが、ファイル サイズが異なる既存のファイルを除外します。
    3. /xjf ジャンクションファイルを除外
    4. /xjd ジャンクションディレクトリを除外
    5. /xa:[RASHCNETO] 指定した属性のいずれかが設定する対象のファイルを除外します。
      S - システム、 H - 非表示、 O - オフライン 。
    6. /xf [ ...] 指定した名前またはパスに一致するファイルを除外します。 ワイルドカード文字 (* および ?) がサポートされています。
    7. /xd [ ...] 指定した名前またはパスに一致するファイルを除外します。 ワイルドカード文字 (* および ?) がサポートされています。
  2. コピーする情報の制御
    1. /copy: コピーするファイルのプロパティを指定します。 このオプションの有効な値は次のとおりです。...(割愛)... /COPY オプションの既定値は DAT (データ、属性、タイム スタンプ) です。
    2. /dcopy: ディレクトリで何をコピーするかを指定します。 このオプションの有効な値は次のとおりです。...(割愛)... このオプションの既定値は DA (データと属性) です。
  3. ロギング:
    1. /log: 状態出力をログ ファイルに書き込みます (既存のログ ファイルを上書きします)。
    2. /log+: 状態の出力を (既存のログ ファイルに出力を追加する)、ログ ファイルに書き込みます。
    3. /fp 画面・ログの出力にはファイルの完全パス名が含まれます。
    4. /ndl ディレクトリ名をログに記録しないことを指定します。
    5. /np コピー操作の進行状況 (これまでにコピーされたファイルまたはディレクトリの数) が表示されないことを示します。
    6. /tee 状態の出力をコンソール ウィンドウ、およびログ ファイルに書き込みます。
  4. リトライ:
    1. /r: 失敗したコピーの再試行回数を指定します。 n の既定値は 1,000,000 (100 万回の再試行) です。
    2. /w: 再試行間の待ち時間 (秒) を指定します。 n の既定値は 30 (30 秒の待ち時間) です。
  5. バックアップ用:
    1. /mir ディレクトリ ツリーをミラー化 (/e /purge に相当 )。
    2. /purge リンク先のファイルとソースに存在しなくなったディレクトリを削除します。
    3. /e サブディレクトリもコピーします。 このオプションでは、空のディレクトリ自動的に含めます。
    4. /z 再開可能モードでファイルをコピーします。 再起動可能モードでは、ファイルコピーが中断された場合、robocopy はファイル全体を再コピーするのではなく、中断した場所から再開できます。

PC内のコピーでは(外部デバイスへのバックアップでないなら) /xo は常に付ける、でないとひどい目にあう。

/np, /ndl, /fp はログをキレイにするためのオプション。目視専用なら /np, /ndl は付けないほうがよい、/fp は目視でも便利。

/r:1 /w:3 はいつも付けておいたほうがよい。が、忘れたた強制中断すればよい。

/dcopy:DAT は付けておいたほうがよい。ディレクトリのタイムスタンプが保存される。

/z はネットワークドライブでないと無意味との記述が多いが、そうでもない気がする。付けておいて実害はない。

使用例

便宜上 ~~(チルダ2つ)で ${env:USERPROFILE} を表すとする。~~(チルダ1つ)で ${env:HOME} を表すとする。

Cドライブの ~\Work\Chimaira.org\root\ を ~~\OneDrive\ServerFiles\Chmaira.org\root\ にミラーリングする。サイズは約500MB(0.5GB)、WizTreeで調べた。

事前に、~~\OneDrive\ServerFiles\Chmaira.org\root\ は作っておく。作業を分割してミスを防げるし、タブ補完が使える。

Powershellコマンドラインで [Shift]+[Enter] で改行できる。一行ごとに別コマンドラインと認識されるようだ、なに?この仕様。

robocopy C:\Users\m-hiyama\Work\Chimaira.org\root C:\Users\m-hiyama\OneDrive\ServerFiles\Chimaira.org\root /xo /dcopy:DAT /r:1 /mir /z

/xo /dcopy:DAT /r:1 と /z はもう習慣として常に付けていいと思う。

今回はログを取ってない。ログを取るときは /NP(プログレス不要) /NDL(ディレクトリログは不要) /TEE を付ける。

この後で、OneDrive の設定で「OneDrive\ServerFiles\Chimaira.org\ 以下のファイルはローカルになくてもいい」とする。すると、クラウド側にアップロードが始まる。アップロードが終わるとローカルのディスク容量は空く。

クラウドにバックアップされた状態になるので、C:\Users\m-hiyama\Work\Chimaira.org\root\ に何事か起きても安心。もっとも、これらのファイルはConoHaのサーバー上にもあるんで、三箇所に実体がある。




以上の内容はhttps://m-hiyama-memo.hatenablog.com/entry/2024/09/17/140431より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14