仅复制(同步)Windows 中已复制的文件和文件夹的时间戳

mik*_*ike 8 windows mirror copy timestamp

我在使用 Total Commander 复制的文件上丢失时间戳(创建日期)时遇到问题 - 仅保留修改日期。它有数十万个文件和几 TB的数据,所以我不想再次复制它们。

我设法使用 robocopy 仅更新文件夹时间戳 - 效果很好:

robocopy /e /dcopy:t c:\source d:\destination
Run Code Online (Sandbox Code Playgroud)

但所有文件时间戳都被修改为复制时间。

我尝试了一些选项,例如:

robocopy /e /copy:t c:\source d:\destination
robocopy /e /copyall c:\source d:\destination
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。

它可以完成这项工作,但仅当目标 为空时:

robocopy /e /copyall /dcopy:t c:\source d:\destination
Run Code Online (Sandbox Code Playgroud)

它也可以完成这项工作,但仅在 Windows 7 上(在 Windows 10 上不起作用),并且它会再次复制所有文件,这不是我想要的:

robocopy /e /copyall /is c:\source d:\destination
Run Code Online (Sandbox Code Playgroud)

有人知道如何仅更新文件的时间戳而不再次复制数据本身吗?它可以是任何应用程序/方法,但如果可能的话,我更喜欢免费的应用程序/方法。我需要重新创建整个子目录结构、隐藏文件和符号链接 - 完整镜像。:)

谢谢。

mik*_*ike 8

好吧,我已经成功做到了这一点,也许对其他人有用:

robocopy /e /timfix /dcopy:t c:\source d:\destination
Run Code Online (Sandbox Code Playgroud)

做这份工作:)


小智 6

再次复制可能是最快的方法。参与监督所有命令花了我几个小时,而且并不完美。为了避免文件复制,添加了 copy:t

robocopy /e /timfix /dcopy:t /copy:t c:\source d:\destination
Run Code Online (Sandbox Code Playgroud)

事实上,robocopy 在没有它的情况下开始了物理复制(Windows 10 本地或 Samba)。需要修复错误复制的 TB 级 Samba 数据,由于 Linux 中“旧时间戳”的缩写(时间未显示,其他命令在复制时将其视为午夜),因此没有时间戳的时间部分。本地结果没问题,但在 (FreeBSD) Samba 中仅复制修改时间。此处的 robocopy 时间修复不支持创建时间,仅当重新创建文件时才支持。

robocopy 的一个小故障是,即使数据未复制,它也会报告“复制的字节”,如不切实际的速度所示:速度:2826677.309 兆字节/分钟。