我正在尝试编写一个robocopy
命令来从文件夹复制SR
到DS
。
文件夹DS
中可能包含已存在于 文件夹中 的文件SR
,但如果 文件夹DS
更新,请不要覆盖它。如果 文件夹中不存在 文件夹/文件DS
,请复制它们,并在文件/文件夹上保留相同的安全权限(共享和 NTFS)和时间戳。
我试过了:
Robocopy Source Des /XN /E
问题是它不断覆盖数据,另一个问题是我有一个超过 320 个字符的长路径名,robocopy
无法复制。
答案1
我认为/XN 是问题所在,请检查此链接: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy#remarks 我们知道:/xn = 排除较新的文件。
/E = 复制子目录。此选项包括空目录。
- 我认为您需要使用不同的开关检查:
/maxlad:指定最长最后访问日期(不包括自 N 以来未使用的文件)。
/minlad:指定最小上次访问日期(不包括自 N 以来使用的文件)如果 N 小于 1900,则 N 指定天数。否则,N 指定 YYYYMMDD 格式的日期。
- 对于长路径名的问题,我有一个解决方案,但它会花费很多时间,所以为了不浪费更多时间在任何可以轻松解决这个问题的 GUI 工具上,尝试谷歌 rsync、gsrichcopy 360 或 teracopy,好消息是这些也可以解决最近文件或更新文件的问题,但首先检查一下我上面提到的解决方案
答案2
您可以尝试从文件夹 DS 复制到文件夹 SR——选择仅复制较新的文件。然后将文件夹 SR 复制到文件夹 DS。听起来好像文件夹 DS 中可能没有太多较新的文件,所以这不会增加太多时间。
最后,两个文件夹都将完全更新。
这确实取决于您的需求细节,但也可能就是您想要做的。
您可以尝试应用这个解决方案,或者也可以切换到其他用户提到的 robocopy 替代方案。