Windows实现命令行快速复制
robocopy
(Robust File Copy)是 Windows 中一个功能强大、灵活的文件复制工具,专为高效的文件和文件夹复制设计,特别适合处理大文件夹、大量文件以及跨网络的复制任务。与其他复制工具相比,它具备更多功能,如多线程、增量复制、错误恢复等。以下是对 robocopy
的详细解析:
基本语法
robocopy [source] [destination] [file(s)] [options]
[source]
: 源文件夹路径。[destination]
: 目标文件夹路径。[file(s)]
: 复制的文件类型(默认为*.*
复制所有文件)。[options]
: 可选参数,用于控制复制行为。
常用选项
1. 目录复制选项
/S
: 复制非空子目录。/E
: 复制所有子目录,包括空子目录。/MOVE
: 移动文件和目录(复制后删除源)。/PURGE
: 删除目标文件夹中源文件夹不存在的文件(同步目标和源)。
2. 复制选项
/COPY:DAT
: 默认复制文件的“数据、属性、时间戳”。/COPYALL
: 复制所有属性,包括数据、时间戳、安全属性(ACL)、所有者信息、审计信息。
/SEC
: 复制文件的 NTFS 权限(安全描述符)。/TIMFIX
: 修复目标文件的时间戳,使其与源文件匹配。/B
: 使用备份模式复制,适用于复制系统文件和权限受限的文件。
3. 文件选项
/MAXAGE:n
: 只复制比指定时间戳更新的文件,n 可以是天数、日期。/MINAGE:n
: 只复制比指定时间戳更旧的文件。/MAX:n
: 只复制比指定大小(字节)小的文件。/MIN:n
: 只复制比指定大小(字节)大的文件。
4. 错误处理和重试选项
/R:n
: 在失败时重试 n 次(默认是 1,000,000 次)。/W:n
: 重试之间等待 n 秒(默认 30 秒)。/TBD
: 在网络路径不可用时等待路径变为可用。
5. 性能优化选项
/MT[:n]
: 使用 n 个线程进行复制(默认 8,最大 128),能显著提高大文件夹的复制速度。/NP
: 不显示进度百分比。/LOG:file
: 将输出结果保存到指定日志文件中。/TEE
: 将输出写入日志文件的同时,也在控制台显示。
6. 增量复制选项
/XO
: 跳过比目标文件新的源文件。/XN
: 跳过比目标文件旧的源文件。/XX
: 跳过额外的文件和目录(即目标中有而源中没有的文件)。/IS
: 复制相同文件(即使源文件和目标文件相同)。
示例
1. 简单文件夹复制
将 C:\source
文件夹及其所有子文件夹(包括空文件夹)复制到 D:\backup
:
robocopy C:\source D:\backup /E
2. 使用多线程复制
将文件夹复制到目标位置,并使用 16 个线程加速:
robocopy C:\source D:\backup /E /MT:16
3. 增量复制
只复制源文件夹中比目标文件夹更新的文件:
robocopy C:\source D:\backup /E /XO
4. 复制并记录日志
将文件夹复制到目标位置,并将日志保存到 logfile.txt
:
robocopy C:\source D:\backup /E /LOG:C:\logfile.txt
5. 同步文件夹
将 C:\source
同步到 D:\backup
,删除目标文件夹中源文件夹不存在的文件:
robocopy C:\source D:\backup /E /PURGE
6. 移动文件夹
移动文件夹内容(复制后删除源文件和文件夹):
robocopy C:\source D:\backup /MOVE
日志信息
robocopy
执行时会输出详细的日志信息,包括:
- 文件复制状态:显示哪些文件被复制、跳过或删除。
- 错误和重试次数:列出因何种原因复制失败,及其重试次数。
- 摘要:执行结束后会显示复制的文件数量、总文件大小、复制时间等统计数据。
robocopy
的优点
- 多线程:可以通过
MT
参数开启多线程复制,大幅提高速度。 - 增量复制:只复制改变的文件,节省时间和带宽。
- 断点续传:复制过程被中断后,
robocopy
可以从中断的位置继续复制,不必重头再来。 - 容错能力:具有自动重试功能,适合在网络环境下进行大批量的文件复制。
- 日志记录:支持日志输出,方便追踪和排查问题。
robocopy
的缺点
- 复杂性:由于功能强大,命令和选项较为复杂,初学者可能需要时间熟悉。
- 界面简单:与图形化工具相比,
robocopy
没有直观的界面,适合命令行使用。
总结
robocopy
是 Windows 中一个功能强大的文件复制工具,特别适合处理大量文件、复杂目录结构和跨网络的复制任务。通过合理使用其多线程、增量复制和错误恢复功能,可以大大提高文件复制的效率和可靠性。