Robocopy 快速复制大批量文件的技巧
Robocopy(Robust File Copy)是 Windows 内置的强大复制工具,下面从核心参数、提速技巧到完整示例进行说明。
一、核心提速参数
| 参数 | 作用 | 说明 |
|---|---|---|
/R:0 | 重试次数设为 0 | 默认重试 100 万次,失败文件会严重拖慢速度,设 0 跳过 |
/W:0 | 重试等待秒数设为 0 | 配合 /R:0 使用 |
/NP | 不显示进度百分比 | 减少控制台刷新开销,大批量时显著加快 |
/NDL | 不显示目录列表 | 减少输出,进一步降低开销 |
/NFL | 不显示文件列表 | 同上 |
/NJH | 不显示作业头 | 输出更精简 |
/NJS | 不显示作业摘要 | 输出更精简 |
/E | 复制所有子目录(含空目录) | 常用 |
/S | 复制子目录(不含空目录) | |
/MIR | 镜像同步(含删除目标多余文件) | 等同于 /E /PURGE,慎用 |
/Z | 可重启模式 | 会显著降速,仅在网络不稳定时使用 |
/J | 使用未缓冲 I/O | 复制大文件时更高效(Win10+) |
/MT 默认即启用,但显式设置更大值常更快 |
⚠️
/Z(重启模式)与/MT(多线程)不能同时使用,/Z会让复制慢数倍。本地磁盘复制务必避免/Z。
二、推荐命令示例
场景 1:大批量小文件本地复制(最常用)
| |
场景 2:镜像同步(保持两边一致)
| |
场景 3:网络驱动器/不稳定链路
| |
- 网络/不稳定时保留少量重试,用
/Z支持断点续传(牺牲速度换可靠性)。
场景 4:只复制修改过的文件(增量备份)
| |
/M只复制带存档属性的文件(即修改过的文件),复制后清除存档属性。
场景 5:复制大文件(电影、数据库、ISO)
| |
/J启用未缓冲 I/O,绕过缓存,对大文件更高效;线程数可适当调低。
三、进阶技巧
1. 线程数怎么选?
- 小文件多:
/MT:32到/MT:64(瓶颈在元数据和小 I/O) - 大文件多:
/MT:4到/MT:8(瓶颈在带宽,线程多了反而争抢) - 机械硬盘:建议
/MT:8左右,过多线程会导致磁头频繁寻道,反而变慢 - SSD / NVMe:可大胆用
/MT:64
2. 限制带宽(避免占满网络)
| |
/IPG:N 在每个包之间等待 N 毫秒,缓解网络压力。
3. 按时间过滤
| |
/MAXAGE:7 只复制 7 天内修改的文件;还有 /MINAGE、/MAXLAD、/MINLAD 等。
4. 保留日志便于排查
| |
用 /LOG(覆盖)或 /LOG+(追加)输出到文件,比控制台打印快得多。
5. 先做"干跑"预览
| |
/L 只列出将要复制的文件,不实际复制,方便检查范围。
6. 恢复中断的任务 Robocopy 天然支持断点续传特性:直接重新运行同一命令,它会自动跳过已完整复制的文件(按时间戳和大小判断),无需额外参数。
四、性能对比参考
复制约 10 万个混合文件时,典型效果:
- 普通拖拽复制:受资源管理器单线程限制,较慢
robocopy /E /MT:1(单线程):基线robocopy /E /MT:32 /R:0 /W:0 /NP /NDL:通常快 3-10 倍(尤其小文件场景)
总结口诀
多线程
/MT、零重试/R:0 /W:0、少输出/NP /NDL /NFL、避开/Z、大文件加/J、日志用/LOG。
按"文件大小特征 + 存储介质"调整线程数,基本就能拿到 robocopy 的最佳性能。