我想在 Windows 10 上将本地目录递归复制到另一个本地目录,要求如下:
- 复制操作在运行时不得询问任何问题。(这很重要,因为我预计它会运行 20 小时,而在此期间我无法单击“确定”。)如果发生错误,必须报告,并且复制必须继续下一个文件。
- 如果目标文件已存在,则当且仅当大小不同时,副本必须覆盖它。(否则必须跳过该文件。)
- 复制必须复制文件和目录的最后修改时间。
- 复制是否复制所有者、权限或扩展属性并不重要。
- 副本必须适用于长度超过 255 个字符的路径名。
- 该副本必须以管理员身份运行,以便它具有对所有文件和目录的读写权限。
我尝试在 Total Commander 中复制,但它往往会因各种问题而中断复制。我无法以在开始时回答所有可能的问题的方式开始复制。(我能够在设置中指定复制目录的最后修改时间。默认情况下它是禁用的。)
答案1
去同步可以做到这一切。
答案2
以管理员身份启动 cmd.exe。在黑色控制台窗口中,运行:
robocopy C:\SRCDIR D:\DSTDIR /e /dcopy:dat /r:0
它满足问题中的所有要求,但有一个修改:当且仅当目标文件具有相同的路径名、大小和上次修改时间时,它才跳过复制文件。(问题仅要求检查大小,而忽略上次修改时间。)
它还跟随符号链接,因此陷入无限循环,永无结束:C:\Users\All Users\Application Data\Application Data\Application Data\...