我有两个硬盘:
G:是连接到 Windows 10 PC 的外部 USB 驱动器 H:是网络驱动器(连接到家庭网络路由器 USB 端口的 USB 端口的另一个 USB 驱动器)
我已将所有文件和子文件夹从 G:/my_data_folder 复制到 H:/my_data_folder。现在,H:/my_data_folder 是 G:/my_data_folder 的精确副本。
现在我想创建一个可以在 Win10 PC 上定期运行的 Robocopy 命令,它将从 G: 复制到 H:
- G:/my_data_folder 中不存在于 H:/my_data_folder 中的任何文件/文件夹
- G:/my_data_folder 中已存在于 H:/my_data_folder 但为较新版本的任何文件(即,最近已保存)。这个新复制的文件将覆盖 H: 上的旧文件。
我对 Robocopy 的理解是,不复制相同日期/时间的现有文件是默认行为,因此我不需要明确排除它们。
我不希望 H:/my_data_folder 镜像 G:/my_data_folder。也就是说,永远不要从 H:/my_data_folder 中删除任何内容,即使现在 G:/my_data_folder 中没有它。
我不需要日志文件,但我想看看它在屏幕上做了什么。
这是我编写适当的 robocopy 命令的尝试:
robocopy g:/my_data_folder h:/my_data_folder /e /np /fft /mt:8 /z /r:5 /w:5
在哪里:
- /e = 复制空目录
- /np = 没有文件复制进度 - 不需要它
- /fft = 如果由于网络驱动器而出现任何日期/时间错误
- /mt:8 = 使用 8 个并发线程来加快速度
- /z = 可重新启动模式,以便它可以从中断的传输中恢复
- /r:5 = 最多尝试 5 次重启
- /w:5 = 重新启动之间等待 5 秒
这会做我想要的吗?我是否错过了此类任务的任何关键开关?
谢谢。
你的脚本是完美的。
只是为了解决
/XX
harrymc 的回答中提出的稍微令人困惑的“以防万一”论点:"为避免删除目标文件夹,我建议添加
/XX
开关。这应该是默认的,但我会明确添加它以防万一。 "我建议不要“以防万一”添加冗余开关。在你的情况下,这个
/XX
开关不会做任何事情,只会造成混乱。另一个答案中引用的页面清楚地解释了该开关的目的是什么:
"
/XX
(exclude extra)如果与 /Purge 或 /Mir 一起使用,exclude extra 开关将优先并防止从目标中删除任何文件。"由于您的脚本既
/MIR
没有开关也没有/PURGE
开关,我们可以 100% 肯定地说添加/XX
“以防万一”是多余的。我多年来一直在使用 Robocopy,并且已经推送了许多 TB 的数据,而所有这些都没有使用过
/XX
交换机。Robocopy 从未删除过一个“额外”文件。可以在这里看到进一步的说明。
只是想澄清一下!
为了避免删除目标文件夹,我建议添加
/xx
开关。这应该是默认设置,但我会明确添加它以防万一。此开关进一步描述为: