robocopy 是什么
Windows 自带的文件复制工具,面向大批量目录同步:支持多线程、断点重试、失败等待、属性与 ACL 复制、日志留档以及镜像模式。相比资源管理器复制,它在长路径、海量小文件、网络抖动场景下更稳,退出码还能被脚本直接判断,因此常被用作 Windows 上的文件级备份与同步手段。
基本信息
| 适用平台 | Windows 7/Server 2008 R2 及以后,系统自带 |
|---|---|
| 权限要求 | 读取源、写入目标;复制 ACL 与所有者需相应特权 |
| 关键选项 | /MIR 镜像、/E 含空目录、/R 重试次数、/W 等待秒数、/L 预演、/MT 多线程 |
| 日志 | /LOG 覆盖写日志,/LOG+ 追加,/TEE 同时输出到控制台 |
典型使用场景
- 把业务目录镜像到外置盘或文件服务器,做每日文件级备份
- 跨机房搬运海量小文件,用 /MT 提高吞吐并允许重试
- 迁移前预演:加 /L 只列动作不落地,确认范围后再正式执行
- 保留 NTFS 权限:用 /COPYALL 或 /SEC 复制访问控制列表
- 长期留档:日志按天追加到文件,便于事后核对复制结果
镜像备份示例
镜像备份示例
robocopy C:\data E:\backup\data /MIR /L /NP /TEE # 先预演,只列将要执行的动作
robocopy C:\data E:\backup\data /MIR /R:2 /W:5 /NP ` # 正式执行,失败重试 2 次、每次等 5 秒
/LOG+:E:\logs\robocopy.log /TEE # 追加日志并同时打印
robocopy C:\data E:\backup\data /E /XO /R:1 /W:3 ` # 只补新文件的追加模式,不删目标
/COPYALL /MT:16 /NP # 复制全部属性,16 线程退出码读法
| 退出码 | 含义 | 处理建议 |
|---|---|---|
| 0 | 没有文件需要复制 | 正常,注意别误判为失败 |
| 1 | 有文件复制成功 | 正常 |
| 2 | 目标存在多余文件(未指定 /MIR 时不删) | 确认是否需要清理 |
| 3 | 1+2 同时发生 | 正常 |
| 8 及以上 | 有文件复制失败 | 必须告警,检查占用与权限 |
| 16 | 严重错误,未执行复制 | 检查路径、凭据与目标可达性 |
/MIR 会删除目标端多余文件:目标必须是专用备份目录,源路径写错(少一层目录)会直接清空目标里的有效数据。首次执行前一律先加 /L 预演。