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 | ある* | ある* | − | − | − |
「ある」「ない」は、ファイルが存在するかどうか、「一致」「不一致」は更新時刻やサイズが同じかどうか、「元>先」はコピー元ファイルの方が新しい、「元<先」はコピー先ファイルの方が新しい、という意味。例えば「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
のようにシステム属性と隠しファイル属性を外せば見えるようになる。
[通知用URL]
Tweet
最終更新時間:2022年08月16日 12時09分56秒