可靠地镜像或同步目录,支持重试、日志和多线程。
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
if errorlevel 8,不要用 if errorlevel 1。/mir 会删除目标端多余内容;先用 /l 生成计划并逐行检查,目标端有独立数据时先备份,或改用 /e 不带 /purge。/r:1000000 /w:30,遇到被占用文件可能挂很久;无人值守始终写 /r:2 /w:2,必要时加 /zb。/mt 不能与 /ipg、/efsraw 同时使用(官方说明),且多线程输出会交错;需要可读记录时加 /log 或降低线程数。/move 按文件复制成功后逐个删除源,不是全局事务;中断会留下源和目标各一部分,关键迁移先复制、校验后再单独清理源。robocopy 默认会处理 junction;镜像含链接的目录树时先决定要链接本身还是目标,必要时用 /xj 排除、/sl 复制符号链接、/sj 复制 junction。合上页面,先回答,再展开对照。
/mir 和 /e 的区别是什么?为什么它可能删数据?robocopy 退出码 1 代表失败吗?脚本应如何判断?/r 和 /w?/mir 等于 /e 加 /purge,会删除目标端源端没有的文件和目录。
小程序版
微信扫码,随时查命令