使用 robocopy 将文件复制到新驱动器后,我意识到所有文件和目录的创建时间都已重置为复制时间。
是否有一些开关可以使 robocopy 保留原始文件的时间?
答案1
看一下/COPY:[copyflags]
和/DCOPY
开关的选项。
根据ROBOCOPY /?
使用信息:
/COPY:copyflag[s] :: 要复制的文件内容(默认为 /COPY:DAT)。 (复制标志:D=数据、A=属性、T=时间戳)。 (S=安全=NTFS ACL,O=所有者信息,U=审核信息)。 /DCOPY:T :: 复制目录时间戳。
例如:
ROBOCOPY c:\src d:\dest /MIR /COPY:DT /DCOPY:T
将复制所有文件和文件夹并保留日期和时间戳。
ROBOCOPY c:\src d:\dest /MIR /COPY:DAT /DCOPY:T
将复制所有文件和文件夹并保留日期和时间戳以及文件属性。
还有另一个(我相信已经弃用了?)开关/TIMFIX
,其功能大致相同,/COPY:DT
但它不能修复文件夹上的时间戳。
这些是在 Windows 7 x64 Ultimate 上使用 ROBOCOPY 5.1.10.1027 进行测试的。
请注意,该/MIR
开关会镜像您要复制的目录;也就是说,/MIR
还会删除目标文件夹中在源文件夹中找不到的文件。该/MIR
开关相当于/E
和/PURGE
开关一起使用(但带有小例外)。
答案2
我在工作中使用它。比使用 /MIR 开关更安全,因为 /MIR 开关可能会覆盖或删除数据。这将复制文件夹和文件的时间戳。
robocopy G:\users\username F:\Users\username /COPYALL /E /dcopy:T /SECFIX
/E 复制空文件夹(如果不需要则删除)
/SECFIX 复制 NTFS 权限(如果不需要则删除)
可以添加 /XO 来排除较旧的(例如,如果对文件夹迁移进行调整)