トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

robocopyコマンド

http://www.atmarkit.co.jp/ait/articles/1309/27/news116.html
https://pf-j.sakura.ne.jp/program/dos/doscmd/robocopy.htm
https://n-archives.net/software/robosync/articles/robocopy-why-destination-becomes-hidden/

操作方法

 robocopyのオプションの説明の前に、robocopyで扱うファイル(やフォルダ)の「クラス」について説明しておく。クラスとは、転送元と転送先のファイルの状態や属性情報などを比較して、2つのファイルがどのような関係にあるかを判断する基準のことである。robocopyには次のような8つのクラスがある。
クラス コピー元 コピー先 更新時刻 サイズ 属性
Lonely ある ない
Tweaked ある ある 一致 一致 不一致
Same ある ある 一致 一致 一致
Changed ある ある 一致 不一致
Newer ある ある 元>先
Older ある ある 元<先
Extra ない ある
Mismatched ある* ある*
robocopyのファイル・クラス
「ある」「ない」は、ファイルが存在するかどうか、「一致」「不一致」は更新時刻やサイズが同じかどうか、「元>先」はコピー元ファイルの方が新しい、「元<先」はコピー先ファイルの方が新しい、という意味。例えば「Lonely」はコピー元にしかないファイル、「Extra」はコピー先にしかないファイル、「Tweaked」はサイズも更新時刻も同じだが、属性情報が異なるファイル。「Mismatched*」は、ファイルとフォルダのように、名前は同じだが種類が違う場合のクラス。

 デフォルトでは、robocopyは「Changed」「Newer」「Older」となっているファイルだけをコピーするようになっている。つまり、内容が変更されているか、コピー元の方が新しいか、逆にコピー元の方が古い(コピー先の方が新しい)ファイルだけをコピーする。

コピーするファイルの選択

Robocopyではオプションからのファイルを直接指定するほか、特定の条件に合ったファイルを選択する機能などがあります。条件の種類とそれに対応するオプションは以下の通りです。
条件の種類 「含める」オプション 「除外する」オプション
ファイル名 /IF パターンに一致するファイルのみ選択 /XF パターンに一致するファイルを除外
(直接ファイル名指定) /XD (親)ディレクトリ名で除外
日付・時刻 (なし) /XN コピー元が新しい場合除外
/XO コピー元が古い場合除外
/MAXAGE 最終更新が古いファイルを除外
/MINAGE 最終更新が新しいファイルを除外
/MAXLAD 指定日以降にアクセスの無いファイルを除外
/MINLAD 指定日以降にアクセスのあるファイルを除外
ファイル属性 /IA 指定属性のファイルのみ選択 /XA 指定属性のファイルを除外
/IT 属性変更のみのファイルを含める
/A アーカイブ属性を持つファイルのみ選択
/M アーカイブ属性を持つファイルのみ選択(処理後解除)
リンク (なし) /XJ ジャンクションポイント・シンボリックリンクを除外
/XJD ディレクトリのジャンクションポイント・シンボリックリンクを除外
/XJF ファイルのシンボリックリンクを除外
サイズ (なし) /MAX サイズを超えるファイルを除外
/MIN サイズに満たないファイルを除外
その他 /IS 「一致」するファイルを含める /XX コピー先にのみ存在するファイルを除外
/XL コピー元にのみ存在するファイルを除外
/XC 中身のみ異なるファイルを除外

サンプル

ゴミ箱に関する注意

ゴミ箱は、

"$RECYCLE.BIN"

ではなく

"`$RECYCLE.BIN"

との記載があるサイトもあるが、手元の環境で確認する限り、

"$RECYCLE.BIN"

が正しい。

ミラーリングコピー(ただし、リストアップのみ。実際にミラーリングはしない)

robocopy /l /mir fromdir todir

ミラーリングコピーの実施

robocopy /mir fromdir todir

ディスクコピー(ミラーではなく、コピー先に無いファイルのみコピーのリストアップ。実際にコピーは実施しない)

robocopy d: e: /DCOPY:DAT /e /xd "System Volume Information" "$RECYCLE.BIN" /l

実際にコピーする場合は、 /l を消す

ディスクコピー(ミラーのリストアップのみ。実際にミラーリングはしない)

robocopy d: e: /DCOPY:DAT /mir /xd "System Volume Information" "$RECYCLE.BIN" /l

実際にミラーリングを実施する場合は /l を消す

ディスクをフォルダにコピーする場合

robocopy d: e:\backup /DCOPY:DAT /mir /xd "System Volume Information" "$RECYCLE.BIN"

のようにした場合、コピー先のディレクトリが表示されなくなる。
これは、ドライブがシステム属性と隠しファイル属性を持っているため、見えなくなる。

attrib -s -h e:\backup

のようにシステム属性と隠しファイル属性を外せば見えるようになる。

[カテゴリ: OS > Windows]

[通知用URL]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2022年08月16日 12時09分56秒