Windows 大量小文件复制太慢?使用 Robocopy 多线程加速

1. 背景

最近由于 C 盘空间不足,准备将 C 盘从 200GB 扩容到 350GB,同时保留原有的 D、E 盘。

考虑到不想使用第三方分区工具,便采用了比较直接的"笨方法":先将 D 盘文件临时移动到 E 盘,再通过 Windows 自带的磁盘管理工具删除并重建 D 分区,将其中 150GB 分配给 C 盘,最后把文件恢复到 D 盘。

原本以为几十 GB 的文件很快就能移动完成,结果 D 盘包含大量 Python、Conda、Git 等软件和开发环境文件,总计约 92 万个文件,使用 Windows 资源管理器移动了 2 小时才完成 40%。

完成分区调整后,考虑到还需要将这些文件从 E 盘复制回 D 盘,便尝试使用 Windows 自带的 Robocopy 多线程复制工具。实际使用后发现,复制速度明显提升,省去了大量等待时间。

因此,简单记录一下 Robocopy 的使用方法,方便以后迁移大量小文件时参考。

2. Robocopy 多线程复制

Robocopy 是 Windows 自带的文件复制工具,无需额外安装。

打开 PowerShell,执行:

复制代码
robocopy "E:\D" "D:\" /E /MT:16 /R:1 /W:1 /XJ /COPY:DAT /DCOPY:DAT /NP

其中,E:\D 是源目录,D:\ 是目标目录,根据实际情况修改即可。

参数说明

参数 作用
/E 复制所有子目录,包括空目录
/MT:16 启用 16 个线程并行复制
/R:1 失败后重试 1 次
/W:1 重试等待 1 秒
/XJ 排除目录联接点,避免递归复制
/COPY:DAT 保留文件数据、属性和时间戳
/DCOPY:DAT 保留目录数据、属性和时间戳
/NP 不显示逐文件复制百分比

核心参数是 /MT:16 ,可以根据设备性能调整线程数量,例如 /MT:8、/MT:16、/MT:32。

线程数并非越大越快,尤其是同一块硬盘内复制时,需要根据实际情况选择。

3. 检查复制结果

复制完成后,Robocopy 会输出统计信息:

复制代码
               Total    Copied   Skipped  Mismatch    FAILED
    Dirs :     ...
   Files :     ...
   Bytes :     ...

重点检查 FAILED 是否为 0。

还可以执行以下命令检查是否存在需要补复制的文件:

复制代码
robocopy "E:\D" "D:\" /E /L /R:0 /W:0 /XJ /COPY:DAT /DCOPY:DAT /NP

其中 /L 表示仅检查,不实际复制。

注意,该检查主要比较文件大小、修改时间等信息,并非逐文件哈希校验。

4. 总结

这次磁盘扩容过程中最大的感受是:

复制大量小文件时,文件数量对速度的影响可能比文件总大小更明显。

对于包含几十万甚至上百万个小文件的目录,使用 Robocopy 多线程复制通常更高效。

另外,Robocopy 默认执行复制操作,不会删除源文件。建议确认文件完整后,再手动清理临时备份。

以后遇到 Python 环境、Conda 依赖、Git 仓库等大量小文件迁移,可以优先尝试 Robocopy。

相关推荐
2601_961146202 小时前
我的等离子表面处理设备周度保养折腾记录
笔记·设备·设备选型
小新科研测评2 小时前
文献管理工具同步太麻烦?2026年4款多端同步工具实测,换设备不丢笔记
论文阅读·人工智能·笔记·ai·电脑
龙仔7253 小时前
RustDesk 1.5.0 升级安装故障处理笔记
笔记
星恒随风4 小时前
Linux基础IO万字详解:从文件描述符fd到重定向、FILE缓冲机制及MiniShell升级
linux·运维·笔记·学习·状态模式
喜欢打篮球的普通人4 小时前
MiniMind 学习笔记(二十二):数学 Cookbook——把概率空间、期望、似然一次讲明白
人工智能·笔记·学习
乐橙开放平台5 小时前
通道国标 ID 贴反会串店:海康大华宇视摄像头怎么用 GB28181 统一接入?
网络·笔记·物联网·自动化·音视频·智能家居
ab1237687 小时前
Spring Integration 完整笔记 + 和 spring-integration-mqtt、Paho、EMQX 的关系
java·笔记·spring
ACP广源盛139246256737 小时前
Type-C 扩展坞方案选型笔记|国产 DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP 评估
开发语言·笔记·硬件架构·硬件工程·hdmi·国产芯片
旖旎夜光7 小时前
【LangGraph实战】LangGraph 学习笔记(四):持久化——从线程记忆到跨会话长期记忆
人工智能·笔记·python·学习·ai编程·langgraph