robocopy

将文件数据从一个位置复制到另一个位置。

语法

robocopy <source> <destination> [<file>[ ...]] [<options>]

例如,若要将名为 yearly-report.mov 的文件从 c:\reports 复制到文件共享 \\marketing\videos ,同时使用 /mt 参数) 启用多线程处理以实现更高的性能 (,并在 使用 /z 参数) 中断 (时重启传输的功能,请键入:

robocopy c:\reports '\\marketing\videos' yearly-report.mov /mt /z

参数

参数 说明
<source> 指定源目录的路径。
<destination> 指定目标目录的路径。
<file> 指定要复制的文件或文件。 支持通配符 (*) 。 如果未指定此参数, *.* 则用作默认值。
<options> 指定要用于 robocopy 命令的选项,包括 复制文件重试日志记录作业 选项。

复制选项

选项 说明
/s 复制子目录。 此选项自动排除空目录。
/e 复制子目录。 此选项自动包括空目录。
/lev:<n> 仅复制源目录树的前 n 个级别。
/z 以可重启模式复制文件。 在可重启模式下,如果文件副本中断,Robocopy 可以选取它离开的位置,而不是重新复制整个文件。
/b 在备份模式下复制文件。 备份模式允许 Robocopy (ACL) 替代文件和文件夹权限设置。 这样,就可以复制你可能无权访问的文件,前提是该文件在具有足够权限的帐户下运行。
/zb 以可重启模式复制文件。 如果文件访问被拒绝,请切换到备份模式。
/j 使用建议用于大型文件) 使用无缓冲区 I/O (的副本。
/efsraw 复制 EFS RAW 模式下的所有加密文件。
/copy:<copyflags> 指定要复制的文件属性。 此选项的有效值为:
  • D - 数据
  • A - 属性
  • T - 时间戳
  • S - NTFS 访问控制列表 (ACL)
  • O - 所有者信息
  • U - 审核信息
此选项的默认值为 DAT (数据、属性和时间戳) 。
/dcopy:<copyflags> 指定要在目录中复制的内容。 此选项的有效值为:
  • D - 数据
  • A - 属性
  • T - 时间戳
此选项的默认值为 DA (数据和属性) 。
/秒 复制安全 (等效 于 /copy:DATS) 的文件。
/copyall 复制与 /copy:DATSOU) 等效的所有文件信息 (。
/nocopy 复制任何文件信息, (/purge) 很有用。
/secfix 修复了所有文件的文件安全性,甚至跳过了这些文件。
/timfix 修复了所有文件的文件时间,甚至跳过了这些文件。
/purge 删除源中不再存在的目标文件和目录。 将此选项与 /e 选项和目标目录结合使用,允许不覆盖目标目录安全设置。
/mir 镜像与 /e/purge) 等效的目录树 (。 将此选项与 /e 选项和目标目录结合使用,覆盖目标目录安全设置。
/mov 移动文件,并在复制文件后从源中删除这些文件。
/move 移动文件和目录,并在复制这些文件和目录后从源中删除它们。
/a+:[RASHCNET] 将指定的属性添加到复制的文件。 此选项的有效值为:
  • R - 只读
  • A - 存档
  • S - 系统
  • H - 隐藏
  • C - 压缩
  • N - 未编制索引的内容
  • E - 加密
  • T - 临时
/a-:[RASHCNET] 从复制的文件中删除指定的属性。 此选项的有效值为:
  • R - 只读
  • A - 存档
  • S - 系统
  • H - 隐藏
  • C - 压缩
  • N - 未编制索引的内容
  • E - 加密
  • T - 临时
/create 仅创建目录树和零长度文件。
/fat 仅使用 8.3 个字符长度的 FAT 文件名创建目标文件。
/256 关闭对超过 256 个字符的路径的支持。
/mon:<n> 监视源,并在检测到超过 n 个 更改时再次运行。
/mot:<m> 监视源,并在检测到更改时以 m 分钟为单位再次运行。
/mt[:n] 使用 n 个线程创建多线程副本。 n 必须是介于 1 和 128 之间的整数。 n 的默认值为 8。 为了提高性能,请使用 /log 选项重定向输出。

/mt 参数不能与 /ipg/efsraw 参数一起使用。

/rh:hhmm-hhmm 指定可以启动新副本的运行时间。
/pf 检查每个文件的运行时间, (不按传递) 。
/ipg:n 指定数据包间差距,以在慢速线路上释放带宽。
/sj 将连接 (软链接) 复制到目标路径而不是链接目标。
/sl 不要关注符号链接,而是创建链接的副本。
/nodcopy (默认 /dcopy:DA) 不复制任何目录信息。
/nooffload 在不使用 Windows 复制卸载机制的情况下复制文件。
/compress 请求文件传输期间的网络压缩(如果适用)。

注意

/mt 参数是在 Windows Server 2008 R2 中引入的,其功能适用于 Windows Server 的当前版本。

重要

使用 /secfix 复制选项时,请使用以下其他复制选项之一指定要复制的安全信息类型:

  • /copyall
  • /copy:o
  • /copy:s
  • /copy:u
  • /sec

文件选择选项

选项 说明
/a 仅复制为其设置了 Archive 属性的文件。
/m 仅复制设置了 Archive 属性的文件,并重置 Archive 属性。
/ia:[RASHCNETO] 仅包括为其设置了任何指定属性的文件。 此选项的有效值为:
  • R - 只读
  • A - 存档
  • S - 系统
  • H - 隐藏
  • C - 压缩
  • N - 未为内容编制索引
  • E - 加密
  • T - 临时
  • O - 脱机
/xa:[RASHCNETO] 排除为其设置了任何指定属性的文件。 此选项的有效值为:
  • R - 只读
  • A - 存档
  • S - 系统
  • H - 隐藏
  • C - 压缩
  • N - 未为内容编制索引
  • E - 加密
  • T - 临时
  • O - 脱机
/xf <filename>[ ...] 排除与指定名称或路径匹配的文件。 支持通 * 配符 (和 ) 。
/xd <directory>[ ...] 排除与指定名称和路径匹配的目录。
/xc 排除具有相同时间戳但文件大小不同的现有文件。
/xn 从副本中排除比目标新的源目录文件。
/xo 早于目标的源目录文件从副本中排除。
/xx 排除目标中存在的附加文件和目录,但不包括源。 排除额外文件不会从目标中删除文件。
/xl 排除源中存在的“孤独”文件和目录,但不包括目标。 排除孤独的文件可防止将任何新文件添加到目标。
/im 包括 (不同更改时间) 的修改文件。
/is 包括相同的文件。 同一个文件的名称、大小、时间和所有属性相同。
/it 包括“已调整”文件。 调整的文件具有相同的名称、大小和时间,但不同的属性。
/xc 排除具有相同时间戳但文件大小不同的现有文件。
/max:<n> 指定 (的最大文件大小,以排除大于 n 个字节的文件) 。
/min:<n> 指定最小文件大小 (以排除小于 n 个字节的文件) 。
/maxage:<n> 指定要排除超过 n 天或日期) 的文件的最大文件期限 (。
/minage:<n> 指定 (排除大于 n 天或日期) 的文件的最低文件期限。
/maxlad:<n> 指定上次访问日期上限, (排除自 n) 以来未使用的文件。
/minlad:<n> 指定自 n () n 小于 1900 起以来使用的最小上次访问日期,n 指定天数。 否则, n 以 YYYYMMDD 格式指定日期。
/xj 排除默认情况下通常包含的交点。
/fft 采用 FAT 文件时间(精度为两秒)。
/dst 补偿一小时的 DST 时间差异。
/xjd 排除目录的交界点。
/xjf 排除文件的交界点。

重试选项

选项 说明
/r:<n> 指定复制失败时的重试次数。 n 的默认值 为 1,000,000 (100 万次重试) 。
/w:<n> 指定等待重试的间隔时间,以秒为单位。 默认值 n 为 30 (等待时间 30 秒) 。
/reg /r/w 选项中指定的值另存为注册表中的默认设置。
/tbd 指定系统将等待在重试错误 67) (定义共享名称。

日志记录选项

选项 说明
/l 指定文件仅列出 (,而不复制、删除或时间戳) 。
/x 报告所有额外的文件,而不仅仅是选择的文件。
/v 生成详细输出,并显示所有跳过的文件。
/ts 在输出中包含源文件时间戳。
/fp 包括输出中文件的完整路径名称。
/bytes 打印大小(以字节为单位)。
/ns 指定不记录文件大小。
/nc 指定不记录文件类。
/nfl 指定不记录文件名。
/ndl 指定不记录目录名。
/np 指定不要显示复制操作的进度(到目前为止复制的文件或目录数)。
/eta 显示复制文件的 (ETA) 到达的估计时间。
/log:<logfile> 将状态输出写入到日志文件(覆盖现有的日志文件)。
/log+:<logfile> 将状态输出写入日志文件, (将输出追加到现有日志文件) 。
/unicode 将状态输出显示为 Unicode 文本。
/unilog:<logfile> 将状态输出作为 Unicode 文本写入日志文件, (覆盖现有日志文件) 。
/unilog+:<logfile> 将状态输出作为 Unicode 文本写入日志文件, (将输出追加到现有日志文件) 。
/tee 将状态输出写入控制台窗口和日志文件。
/njh 指定没有作业标头。
/njs 指定没有作业摘要。

作业选项

选项 说明
/job:<jobname> 指定参数要派生自命名作业文件。 若要运行 /job:jobname,必须先运行 /save:jobname 参数来创建作业文件。
/save:<jobname> 指定要将参数保存到命名作业文件。 必须在运行之前运行 /job:jobname此操作。 必须在此参数之前指定所有复制、重试和日志记录选项。
/quit 在处理命令行 (后退出以查看参数) 。
/nosd 指示未指定任何源目录。
/nodd 指示未指定目标目录。
/if 包括指定的文件。

退出 (返回) 代码

Value 说明
0 未复制任何文件。 未遇到任何失败。 没有不匹配的文件。 目标目录中已存在这些文件;因此,跳过了复制操作。
1 已成功复制所有文件。
2 目标目录中存在一些其他文件,这些文件不在源目录中。 未复制任何文件。
3 复制了一些文件。 存在其他文件。 未遇到任何失败。
5 复制了一些文件。 某些文件不匹配。 未遇到任何失败。
6 存在其他文件和不匹配的文件。 未复制任何文件,也不会遇到任何故障。 这意味着文件已存在于目标目录中。
7 文件已复制,存在文件不匹配,并且存在其他文件。
8 多个文件未复制。

注意

任何等于或大于 8 的值都表示复制操作期间至少有一个失败。

其他参考