自 Windows Vista 以来,Robocopy 已成为 Windows 标准配置的一部分。 该工具因其稳健性和可靠性而受到系统管理员和 IT 专业人员的高度评价。 通常可以在 Windows 10 上使用 Robocopy 成功完成对其他工具来说难以承受或导致错误消息的复制项目。如果您对 Robocopy 还不了解,那就和一起看看如何使用吧。
什么是 Robocopy?
Robocopy 是一种 Windows 工具,专门用于复制和备份。 该程序使用输入到 Windows 命令提示符中的特殊命令和参数进行管理。 但是,经验不足的 Windows 用户也可以使用图形界面软件进行 Robocopy。 其中一种软件是免费的 GUI 工具 RoboMirror。
Robocopy 是最通用的 Windows 原生复制工具,其次是 xcopy 和 copy。 有 72 个参数,它几乎没有什么不足之处,几乎可以处理任何备份。 该程序甚至可以创建仅备份最近更改而不是完整备份的增量备份。 这种节省空间的方法降低了云和网络备份期间带宽和其他资源的压力。
该工具还可以使用相对较少的代码镜像整个目录结构,这意味着它可以在复制操作和备份中包含子目录。 这些基于代码的功能可以作为其他备份例程的重要补充,例如可能专注于 Windows 10 的系统映像。它还可以作为服务器备份 rsync 的补充或替代。
Robocopy 备份的各种功能和灵活性伴随着一定的学习曲线。 即使使用 GUI 工具,初学者也需要花一些时间让自己沉浸在程序中,然后才能进行高效备份并充分利用 Windows 10 中 Robocopy 的全部潜力。 然而,当涉及到简单的复制任务时,初学者 可以使用清晰的命令语法相对快速地跳转。 无论您的操作是简单还是复杂,在使用 Robocopy 时都应谨慎行事 – 文件总是有被意外删除或覆盖的危险。
Robocopy 备份的命令语法
与 Windows 10 中的所有命令行工具一样,Robocopy 需要特殊的命令语法来执行某些任务。 基本结构如下:
1
|
robocopy <source> <destination> [<file>[…]] [<options>]
|
参数“source”是源目录的路径。 目标目录的路径在“destination”参数中定义。 “file”参数用于将被复制的文件并允许使用占位符。 如果输入 *.* 而不是具体的文件名,则源目录(不包括子目录)中的所有文件都将被复制。 如果要包含某种文件类型的所有文件,可以将星号与文件结尾组合在一起。 因此,如果您想复制所有 Word 文档(并且仅复制 Word 文档),则语法如下所示:
1
|
robocopy <Source directory> <Target directory> *.docx
|
可以使用末尾添加的更多选项来扩展复制命令。 例如,您可以定义复制尝试的重复频率,直到完成。 也可以定义尝试之间的时间。 这些参数显着提高了工具的多功能性和鲁棒性。 它们是对 Windows 资源管理器的重大改进,它没有提供干预的机会,并且经常无缘无故地中止复杂的复制操作。
最重要的 Robocopy 命令
您将在下面找到最重要的命令和选项的概述,它们可用于执行相对简单的 Robocopy 备份。 在之后的部分中,我们将通过示例向您展示如何实现这些命令。
/COPY:copyflag[s] | 复制文件属性 – 标准设置:/COPY:DAT – D:数据 – S:安全信息(NTFS 访问控制列表)- A:属性 – O:所有者信息 – T:时间戳 – U:审计信息(文件的 NTFS 监控) 使用权)。 |
/COPYALL | 复制所有文件信息(替代 COPY:DATSOU) |
/NOCOPY | 不复制文件信息(通常与 /PURGE 结合使用) |
/PURGE | 如果源目录中不再存在,则删除目标目录中的文件和目录。 |
/MIR | 镜像目录树(相当于组合 /E + /PURGE) |
/MON:n | 在 n 次更改后再次运行 Robocopy(自动备份的后台操作) |
/MOT:n | Robocopy 在 n 分钟后再次运行(自动备份的后台操作) |
/RH:hhmm-hhmm | 定义 Robocopy 处于活动状态的时间跨度 |
/XF | 排除某些文件类型 |
/XD | 排除某些目录 |
/R:n | 定义复制操作失败的重试次数(标准设置:1,000,000) |
/W:n | 定义重试之间的等待时间(以秒为单位)。 标准设置为 30(在下一次复制尝试前等待 30 秒) |
/L | 列出备份文件(测试运行,备份不会被执行) |
/LOG: | 在每个备份或同步过程的新日志文件中记录状态 |
/LOG+: | 将状态添加到现有日志文件 |
/TEE | 在屏幕和日志文件中输出信息 |
/MOV | 复制后从源目录中移动和删除文件 |
/MOVE | 文件和目录在复制后从源目录中移动和删除 |
robocopy /? | 在命令提示符中打开 Robocopy 帮助指南 |
如何打开 Robocopy
Robocopy 使用 Windows 命令提示符 (cmd.exe) 进行操作。 要进入命令提示符,请打开 Windows 10 运行对话框:
1.按【Win】+【R】键打开运行窗口
2.在字段中输入“cmd”
3.按“确定”
命令提示符将打开,您可以在其中输入 Robocopy 备份和复制操作的命令语法。
如何使用 Robocopy 创建备份
Robocopy 是日常备份程序的理想选择。 在本节中,我们将向您展示如何设置参数和选项,并提供所需代码的示例。
镜像目录
Robocopy for Windows 10 中最常用的选项之一是镜像功能 (/MIR),它创建源目录的完整备份:
1
|
robocopy C:\Users\XU\Desktop\test T:\ /MIR
|
在此示例中,整个源目录(名为“test”)将复制到目标驱动器 (T:\),包括所有子目录(甚至是空目录)。 源目录位于当前活动用户配置文件(在本例中,属于 Maria 的配置文件)的桌面上。
通过试运行进行预检查
如果要测试 mirror 命令捕获了哪些文件以及是否会遇到任何错误,可以添加参数 /L。 命令行将记录该过程并显示任何错误,但不会创建副本。
1
|
robocopy C:\Users\XU\Desktop\test T:\ /MIR /L
|
对 Robocopy 备份的微调控制
为了更好地控制 Robocopy 备份,您可以定义复制尝试次数(R:3 表示尝试 3 次)和尝试之间的等待时间(W:2 表示 2 秒)。 此外,您可以创建一个文件来跟踪备份:
1
|
robocopy C:\Users\XU\Desktop\test T:\ /MIR /R:3 /W:2 /LOG+:Z:\LogFiles\logfile.log
|
在此示例中,将在名为“LogFiles”的目录中创建复制操作协议(logfile.log)。 注意日志目录必须已经存在,否则复制过程将中止。
如果要省略某些文件或文件类型,可以使用参数 /XF(排除文件):
1
|
robocopy C:\Users\XU\Desktop\test T:\ /MIR /XF *.docx
|
可以使用 XD 选项(排除目录)排除整个目录。 由于有问题的目录(“我的文档”)包含一个空格,所以它被放在引号中:
1
|
robocopy C:\Users\XU\Desktop\test T:\ /MIR /XD “My Documents”
|
注意
您需要为在 Windows 10 中使用 Robocopy 的复制操作指明精确的路径。如果路径的任何部分包含空格,则应将路径放在引号中。
但它会得到比这更精细的调整。您可以针对包含或排除的特定文件属性。这是通过选项 /COPY:copyflag[s] 执行的。 Robocopy 使用命令 /COPY:DAT 作为默认备份文件内容(D = 数据)、只读或隐藏等属性(A = 属性)和时间戳(T = 时间戳)。时间戳包含有关创建日期、修改日期和上次打开日期的信息。此信息对于增量备份至关重要,因为它们应仅适用于最近更改的文件和目录。另一个参数是 S(= security),它传输 NTFS 访问权限。
例如,当目标系统中未正确设置某些安全权限导致复制操作失败或不完整时,排除单个复制标志会有所帮助。在这种情况下,您可以避免使用 S 复制标志。例如,包含标志 A 可以将只读属性复制到备份副本上。如果要传输文件内容、属性和时间戳,代码如下所示:
1
|
robocopy C:\Users\XU\Desktop\test T:\ /MIR /COPY:DAT
|
特别是在涉及冗长的备份过程时,您可能希望使用 /Z 分阶段备份。 如果 Robocopy 需要重新启动,它将从停止的地方开始。 如果一个过程被多次中断也不会有问题。 这种方法可以节省时间和资源,因为它可以防止需要重新备份大文件。
自动化 Robocopy 备份
Robocopy 的优势之一是可以通过批处理文件执行备份。您可以在桌面上创建一个批处理脚本并单击鼠标启动它,也可以将其放在 Windows 自动启动目录中,以便在每次系统启动时运行备份。要进入自动启动文件夹,请在 Windows 资源管理器中键入“Autostart”一词,然后按 Enter。或者,您也可以使用 [Windows] + [R] 打开“运行”窗口,然后在那里输入“shell:startup”,然后单击“确定”。然后您可以使用鼠标将批处理文件拖到目录中。批处理文件的副本或快捷方式链接也可以使用。
另一种自动备份的方法是 Robocopy 的监控功能,它可以永久监控源目录。如果进行了更改,它们将被自动备份。 Robocopy 还可以设置为按您选择的时间表运行(例如,每小时一次)或在特定时间点(例如,下午 6 点)运行。您可以使用选项 /MON:n(在 n 次更改后激活备份)或 /MOT:n(在 n 分钟后激活备份)来设置监控。 /RH:hhmm-hhmm 用于特定时间点。 /MON 和 /MOT 也可以组合:
1
|
robocopy C:\Users\XU\Desktop\test T:\ /MIR /R:3 /W:4 /LOG+:Z:\LogFiles\logfile.log /MON:1 /MOT:25
|
在此示例中,如果至少进行了一项更改,Robocopy 将在 25 分钟后运行备份。 更改记录在日志文件中。 如果您不输入特定时间,Robocopy 将使用默认设置自动检查目录(检查并在必要时在一分钟后备份)。 如果您想仔细查看 Robocopy 的活动,例如在启动新备份之前,您可以使用 /TEE 在命令提示符的屏幕上查看日志。
注意
持续的后台活动会给您的资源带来压力,例如,如果大文件经常在网络上传输或传输到云中。 谨慎使用自动化并考虑更新和备份周期。 定期检查备份目录是个好主意,尤其是在新备份操作开始时。 通过这种方式,您可以确定 Robocopy 正在做什么,以及是否在后台发生了不必要的、不需要的或错误缠身的备份。