Windows 系统使用 Robocopy 高效备份文件夹

如果你想快速又稳定地复制电脑里的某个文件夹(比如 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:不显示进度百分比,使日志更简洁易读。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注