系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

robocopy

可靠地镜像或同步目录,支持重试、日志和多线程。

补充说明

robocopy 是 Windows 内置的目录复制工具,适合大批量文件、网络共享、增量同步和镜像。它默认按“数据、属性、时间戳”(/copy:dat)复制,支持失败重试(/r、/w)、断点续传(/z)、备份模式(/b)、多线程(/mt)、日志(/log)和试运行(/l),并用位掩码退出码表示结果。

边界:robocopy 是单向复制,不是双向同步;/mir 等价于 /e 加 /purge,会删除目标端多余的文件和目录。它不是备份软件,没有版本历史;源文件被占用时,备份模式可能绕过权限读取,但要拿到一致副本仍需卷影复制。简单的单文件复制用 copy,旧脚本里的目录复制可以保留 xcopy,但新脚本优先 robocopy。

Windows Vista/Server 2008 起内置,/mt 从 Server 2008 R2 起可用;Windows 10/11 与 Server 2016+ 的核心参数一致。CMD 和 PowerShell 都调用同一个 robocopy.exe,没有 PowerShell 别名,参数写法不变。默认重试 1,000,000 次、每次等 30 秒,无人值守必须显式限制。

影响范围 / 先备份 / 如何回滚:/mir 会删除目标端源端没有的文件和目录,/move、/mov 会在复制成功后删除源。执行前先用 /l 试运行并检查日志,备份目标端或创建卷影副本;robocopy 本身没有撤销,误删只能从备份、卷影副本或文件历史恢复,/move 删掉的源也只能靠备份找回。

常用示例

# 1. 常规复制:含空目录、限制重试、写日志
C:\> robocopy C:\src D:\dst /E /COPY:DAT /R:2 /W:2 /LOG:C:\logs\robocopy.log

# 2. 镜像前先试运行,只列计划不实际改动
C:\> robocopy C:\src D:\dst /MIR /L /LOG:C:\logs\mirror-plan.log

# 3. 正式镜像并排除缓存和临时文件,重试次数必须限制
C:\> robocopy C:\src D:\dst /MIR /XD C:\src\cache /XF *.tmp /R:2 /W:2

# 4. 从网络共享备份大文件,断点续传并启用多线程
C:\> robocopy \\fileserver\share E:\backup\share /E /Z /MT:16 /LOG+:C:\logs\backup.log

# 5. 只复制比目标新的文件,并保留 ACL、所有者和审核信息
C:\> robocopy C:\src D:\dst /E /XO /COPYALL /R:2 /W:2

# 6. 复制成功后删除源文件,执行前必须确认已有备份
C:\> robocopy C:\src D:\dst /E /MOVE /LOG:C:\logs\move.log

# 7. 精简控制台输出,只看错误和摘要
C:\> robocopy C:\src D:\dst /E /L /NJH /NJS /NP

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. /mir 和 /e 的区别是什么?为什么它可能删数据?
  2. robocopy 退出码 1 代表失败吗?脚本应如何判断?
  3. 为什么无人值守任务必须显式写 /r 和 /w?
答案
  1. /mir 等于 /e 加 /purge,会删除目标端源端没有的文件和目录。
  2. 不代表失败,1 表示复制了文件;只有大于等于 8 才应判为失败。
  3. 默认重试一百万次、每次等 30 秒,遇到占用文件可能长时间挂起。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令