如果你想快速又稳定地复制电脑里的某个文件夹(比如 D 盘中的某个目录)到另一个位置,那么 Windows 自带的 Robocopy 工具会是你的得力助手。它比你平时拖动复制文件强大得多,能够处理各种细节,让备份变得更加高效、省心。
一、设置命令行编码
在使用 Robocopy 命令之前,建议你先在命令行窗口运行以下命令:
chcp 65001
这会将当前命令行窗口的字符编码设置为 UTF-8,避免中文路径或文件名出现乱码问题。
二、完整保留文件权限的复制命令
要镜像复制一个文件夹并保留所有文件元数据(包括权限信息),可以使用这个命令:
robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DATS /R:3 /W:5 /MT:8
这个命令会将 D:\AAA 文件夹完整镜像复制到 E:\AAA-backup,确保目标文件夹是源文件夹的精确副本,包含安全信息。
参数解析:
使用
/COPY:DATS通常需要管理员权限才能成功复制权限。否则,可能会出现权限复制失败的情况。
"D:\AAA":这是源目录,即你要复制的原始文件夹。"E:\AAA-backup":这是目标目录,文件将复制到这里。/MIR:启用镜像模式。目标目录将与源目录保持完全一致——包括新增、修改和删除的内容。请注意:此参数可能会删除目标目录中存在但源目录中没有的文件,务必小心使用。/COPY:DATS:指定要复制的内容包括:D:数据(文件内容)A:属性(如只读、隐藏等)T:时间戳(创建、修改时间)S:安全信息(即 NTFS 权限)
/R:3:失败时最多重试 3 次。/W:5:每次重试之间等待 5 秒。/MT:8:启用 8 线程并发复制,可以显著提升性能,尤其是在处理大量小文件或大文件时。
三、无需复制权限的轻量级备份命令
如果你不需要保留文件权限,可以使用一个更轻量级的命令:
robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8
参数解析:
使用
/COPY:DAT通常不需要管理员权限,兼容性更好,适合普通用户。
"D:\AAA":你的源目录。"E:\AAA-backup":你的目标目录。/MIR:启用镜像模式,使目标目录与源目录精确匹配。同样需要注意,这可能会删除目标目录中不存在于源目录的文件。/COPY:DAT:指定要复制的内容包括:D:数据(文件内容)A:属性T:时间戳
/R:3:失败时最多重试 3 次。/W:5:每次重试之间等待 5 秒。/MT:8:启用 8 线程并发复制,以提高性能。
四、如何选择 /COPY:DATS 还是 /COPY:DAT
你的选择取决于你的具体需求:
- 选择
/COPY:DATS(完整权限,需要管理员权限),适用于:- 备份包含重要权限设置的文件(如服务器配置文件、用户资料、共享目录)。
- 需要在目标目录中完全还原访问控制的场景。
- 选择
/COPY:DAT(不保留权限,适用于一般用户),适用于:- 个人数据备份、日常同步。
- 不关心权限保留,只关注文件内容和属性。
- 在权限不足无法复制 ACL(访问控制列表)的环境中。
五、生成日志,方便备份追踪与排错
如果希望保留哪些文件被复制、跳过或出错,可以使用下面这个更推荐的写法:
robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8 /LOG:"E:\backup-log.txt"
如果希望保留所有历史记录,并且实时查看输出信息,可以使用下面这个更推荐的写法:
robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8 /LOG+:"E:\backup-log.txt" /TEE /NP
常用日志参数说明:
/LOG:"路径":将输出写入指定的日志文件(覆盖原内容)。/LOG+:"路径":将输出追加到现有日志文件中,避免覆盖历史记录。/TEE:在命令行中显示的同时写入日志文件,便于观察进度。/NP:不显示进度百分比,使日志更简洁易读。
发表回复