robocopyの実例まとめ

サーバー

robocopyとは

robocopyはWindowsOSに標準搭載されているコマンドの1つ。

ファイルサーバーの移行やバックアップなどで利用します。

robocopyでは、下記のようなことができます。

  • 256文字を超えるパス名のファイルのコピー(xcopyではエラーとなります)
  • 指定したバイト数よりも 大きい/小さい ファイルを除外
  • 指定した日付より 新しい/古いファイル を除外
  • 指定の属性ファイルの コピー/除外
  • コピーに失敗した場合のリトライ回数の指定
  • アクセス権、時刻情報、所有者情報等のコピー/除外
  • パターンに一致する ファイル/ディレクトリ の コピー/除外
  • 帯域を制限するための、パケット間のウェイト設定

基本構文とオプション

robocopy コピー元 コピー先 [ファイル [ファイル]…] [オプション]

コピー元 : コピー元のフォルダ名(共有フォルダも指定可能)
コピー先 : コピー先のフォルダ名(共有フォルダも指定可能)
ディレクトリがない場合は、自動で作成される
ファイル : コピーするファイル/フォルダ名
既定値は「.」 複数指定可能 ワイルドカードの利用も可能
オプション : 後述

実行例

▼ファイルデータ,セキュリティ情報,所有者情報をコピーする

robocopy "コピー元" "コピー先" /COPY:DSO /IS /E /B /R:3 /W:3 /TEE /LOG:"ログファイルの作成場所"

▼ファイルデータのみをコピーする

robocopy "コピー元" "コピー先" /COPY:D /IS /E /B /R:3 /W:3 /TEE /LOG:"ログファイルの作成場所"

頻出オプション

/IS

コピー元とコピー先で一致するファイルを対象に含めます(Include Same files)。/IS を指定しないと同一ファイルはスキップされます。このオプションは一致するファイル以外を除外しません。

/B

バックアップモードでコピーします。バックアップと復元の権限(SeBackupPrivilege・SeRestorePrivilege)を持つユーザーである場合はファイルの所有権やセキュリティーに関係なくコピーすることができます。

/R:n

コピーに失敗した際に再試行を行う回数を指定します。n は数値で回数を指定します。指定しなかった場合はレジストリに保存された値(下記 /REG で保存した値)、それも存在しない場合は既定値の「1,000,000」(100万回)が使用されます。

/W:n

コピーに失敗した際に再試行を行うまでの待機時間を指定します。n は秒単位の数値で待機時間を指定します。指定しなかった場合はレジストリに保存された値(下記 /REG で保存した値)、それも存在しない場合は既定値の「30」(30秒)が使用されます。

/LOG+:<log-file>

ログをコンソール(標準出力)ではなく に指定したファイルに出力します。/LOG と異なり、出力時にファイルの内容は残され、追記する形でログ出力されます。

/TEE

バックアップモードでコピーします。バックアップと復元の権限(SeBackupPrivilege・SeRestorePrivilege)を持つユーザーである場合はファイルの所有権やセキュリティーに関係なくコピーすることができます。

https://www.pg-fl.jp/program/dos/doscmd/robocopy.htm

エラーとその対策

ファイルのバックアップと復元のユーザー権利がありません。と怒られる事あり。

この場合は下記の2点について実行すると、幸せになれる。

  • robocopy.exeを実行するユーザのBackup Operatorsグループへの所属

    ※正確には、「ファイルとディレクトリのバックアップ」及び「ファイルとディレクトリの復元」の2つのユーザー権利の付与)

  • robocopy.exeを管理者として実行すること。

コメント