这真的很奇怪,为什么没有人提到/IM开关?!我在备份工作中长期使用它。但是我刚刚尝试搜索,甚至在微软网站上也找不到任何有关它的信息!!! 同样发现了许多用户帖子抱怨同样的问题!!
无论如何...要使用Robocopy覆盖源和目标中的 所有 文件,无论大小或时间,您必须在命令中包括这三个开关(/IS /IT /IM)。
/IS :: Include Same files. (Includes same size files)
/IT :: Include Tweaked files. (Includes same files with different Attributes)
/IM :: Include Modified files (Includes same files with different times).
这是我用来传输几千兆字节大多数为1GB+的文件(ISO - 磁盘映像 - 4K 视频)的确切命令:
robocopy B:\Source D:\Destination /E /J /COPYALL /MT:1 /DCOPY:DATE /IS /IT /IM /X /V /NP /LOG:A:\ROBOCOPY.LOG
我为您做了一个小测试... 这是结果:
Total Copied Skipped Mismatch FAILED Extras
Dirs : 1028 1028 0 0 0 169
Files : 8053 8053 0 0 0 1
Bytes : 649.666 g 649.666 g 0 0 0 1.707 g
Times : 2:46:53 0:41:43 0:00:00 0:41:44
Speed : 278653398 Bytes/sec.
Speed : 15944.675 MegaBytes/min.
Ended : Friday, August 21, 2020 7:34:33 AM
目标磁盘: WD Gold 6TB (将写入速度与我的结果进行比较)
即使有那些“额外”的内容,那也只是因为开启了“/X”选项而进行报告。正如您所看到的,没有跳过任何文件,并且所有文件的总数和大小都等于已复制的数量和大小。有时,当我在操作期间多次滥用它并取消它时,它会显示少量跳过的文件,但即使如此,前两列中的值始终相等。我以前也通过运行一段 PowerShell 脚本来验证过这一点,该脚本扫描目标中的所有文件并生成所有时间戳的报告。
我在处理它并经历了很多测试和麻烦之后,得出了一些性能提示:
1. 尽管大多数在线用户建议使用最大线程“/MT:128”以获取最佳性能...请不要在非常大的文件中使用“/MT:128”...那是一个大错误,它会导致您的驱动器性能在几次运行后急剧下降...它会创建非常高的碎片或甚至在某些情况下导致文件系统失败,最终您将花费宝贵的时间尝试恢复原始分区和所有搞笑的事情。而且,它的速度比不使用“/MT:128”要慢4-6倍!!
对于非常大的文件:
- 仅使用一个线程“/MT:1”| 影响: 巨大
- 必须使用“/J”禁用缓冲区 | 影响: 高
- 使用“/NP”与“/LOG:file”,并且不要通过“/TEE”输出到控制台 | 影响: 中等。
- 将“/LOG:file”放在与源或目标不同的驱动器上| 影响: 低。
对于常规大文件:
- 使用多个线程,我不会超过“/MT:4”| 影响: 巨大
- 如果目标磁盘具有较低的缓存规格,则使用“/J”禁用缓冲区 | 影响: 高
- & 4同上。
对于数千个小文件:
- 尽情使用多个线程,首先我会从16开始,并乘以2,同时监视磁盘性能。一旦它开始下降,我将回到前一个值并坚持下去| 影响: 巨大
- 不要使用“/J” | 影响: 高
- 使用“/NP”与“/LOG:file”,并且不要通过“/TEE”输出到控制台 | 影响: 高。
- 将“/LOG:file”放在与源或目标不同的驱动器上 | 影响: 高。