robocopy

By | 1月 20, 2021

Robocopy.exe 是 微软在Windows server 2003 Resource Kit Tools 里面提供的程序来做备份的,Windows Vista系统中已经自带了这个命令行程序。Microsoft Windows中内置的传统的“复制和粘贴”功能有一些局限性。它在执行简单的任务(将一个文档从一个目录移动到另一个目录等)时处理得还好,但缺乏 IT 专业人员在工作场所所需的高级功能。例如,复制和粘贴操作不包括任何高级复原功能,所以不允许从短暂的网络中断后进行恢复。特别是当复制完整的目录时,它还是一个要么全有要么全无的问题。而使用 UI,您无法选择仅复制新文件还是复制更新过的文件。您可以复制单个的文件、整个目录或什么也不复制。

GUI 工具下载连接:http://download.microsoft.com/download/f/d/0/fd05def7-68a1-4f71-8546-25c359cc0842/hoffmanutilityspotlight2009_04.exe

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

语法

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

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

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

parameters

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

复制选项

复制选项
选项 说明
/s 复制子目录。 此选项将自动排除空目录。
/e 复制子目录。 此选项将自动包含空目录。
列弗<n> 仅复制源目录树的前 n 个级别。
/z 在可重启模式下复制文件。
/b 在备份模式下复制文件。
/zb 使用可重新启动模式。 如果访问被拒绝,此选项将使用备份模式。
/efsraw 复制 EFS RAW 模式下的所有加密文件。
/copy<copyflags> 指定要复制的文件属性。 此选项的有效值为:

  • D -数据
  • A -特性
  • T -时间戳
  • S -NTFS 访问控制列表 (ACL)
  • O -所有者信息
  • U 审核信息

此选项的默认值为 ” DAT (数据、属性和时间戳) 。

/dcopy:<copyflags> 指定要在目录中复制的内容。 此选项的有效值为:

  • D -数据
  • A -特性
  • T -时间戳

此选项的默认值为 DA (的数据和属性) 。

/秒 复制安全 (等效于 /copy: dat) 的文件。
/copyall 复制 (等效于 /copy: DATSOU) 的所有文件信息。
/nocopy 不复制任何文件信息 (对 /purge) 有用。
/secfix 修复了所有文件的文件安全问题,甚至会跳过文件。
/timfix 修复所有文件上的文件时间,甚至是跳过的文件。
/purge 删除源中不再存在的目标文件和目录。 将此选项与 /e 选项和目标目录一起使用时,允许不覆盖目标目录安全设置。
/mir 镜像目录树 (等效于 /e plus /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个字符的路径的支持。
<n> 监视源,并在检测到超过 n 个更改时再次运行。
/mot:<m> 监视源,如果检测到更改,则在 m 分钟内再次运行。
/MT[:n] 用 n 个线程创建多线程副本。 n 必须是介于1到128之间的整数。 N 的默认值为8。 为了获得更好的性能,请使用 /log 选项重定向你的输出。/Mt 参数不能与 /ipg 和 /efsraw 参数一起使用。
/rh: hhmm-hhmm 指定可能启动新副本时的运行时间。
/pf 检查每个文件上的运行时间 (不按) 。
/ipg: n 指定在慢速线路上释放带宽的数据包间间隔。
/sl 不要跟踪符号链接,而是创建链接的副本。

 重要

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

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

文件选择选项

文件选择选项
选项 说明
/a 仅复制为其设置了 存档 属性的文件。
/m 仅复制设置了 存档 属性的文件,并重置 存档 属性。
i[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 排除 “孤立的” 文件和目录。
/is 包括相同的文件。
/it 包含修改后的文件。
数量<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 的默认值为 1000000 (1000000 重试) 。
/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 指定没有作业摘要。

作业选项

作业选项
选项 说明
/作业<jobname> 指定参数将从命名作业文件派生。
<jobname> 指定将参数保存到指定的作业文件中。
/quit 处理命令行 (后退出,以便查看) 的参数。
/nosd 指示未指定源目录。
/nodd 指示未指定目标目录。
/if 包含指定的文件。

退出 (返回) 代码

退出 (返回) 代码
说明
0 未复制文件。 未遇到任何故障。 没有文件不匹配。 文件已存在于目标目录中;因此,已跳过复制操作。
1 已成功复制所有文件。
2 目标目录中有一些其他文件在源目录中不存在。 未复制文件。
3 已复制某些文件。 存在其他文件。 未遇到任何故障。
5 已复制某些文件。 某些文件不匹配。 未遇到任何故障。
6 其他文件和文件不匹配。 未复制任何文件,但未遇到任何故障。 这意味着文件已经存在于目标目录中。
7 文件已复制,存在文件不匹配,并存在其他文件。
8 几个文件没有复制。

 备注

任何大于 8 的值都表示在复制操作过程中至少出现一次失败。