如何使用 robocopy 复制时间属性而无需重新复制文件

如何使用 robocopy 复制时间属性而无需重新复制文件

我将文件传输到新磁盘,但发现文件的年份错误(1980 年),我无法用 Photoshop 打开这些文件。

我想将时间属性从第一个驱动器复制到第二个驱动器,而无需重新复制文件。

数据量很大。谢谢。

答案1

而不是尝试使用 Robocopy 来不是复制后,您可以使用 Powershell 来更新时间戳。

在 Windows 中更新文件或文件夹的修改日期,类似于 Linux/Unix'触碰'实用程序,使用 Powershell 的设置项目属性执行以下命令:

你的命令看起来应该是这样的:

set-itemproperty -path $Yourfile -name lastwritetime -value "2021-05-18 10:17:47"

使用get-childitemcmdlet 遍历文件树(一级或添加 -recurse 选项以下降文件夹/文件树)。

你的循环看起来应该是这样的:

$filelist = get-childitem C:\Users\You\* -recurse
foreach ($file in $filelist) {
      set-itemproperty -path $file -name lastwritetime -value "2021-05-18 10:17:47"
}

有与以下选项相关的选项获取子项抓住仅限文件或者仅限文件夹。 在 Powershell 窗口中输入得到帮助 获取子项或者设置项目属性以获得更多选项。

答案2

您只需将原始文件的时间戳复制到复制的文件(1980),而无需再次重新复制原始文件,实际上,在使用 robocopy 之前我没有看到这一点,但我认为您必须使用 /DCOPY:T 开关再次进行 robocopy。它还可以保留 ACL。或者,可以配置 SyncThing 和 Gs Richcopy360 以保留目录时间戳和 ACL。

经过全面搜索后,我发现 Gs Richcopy360 有一个名为“文件夹时间戳”的功能,这将重新更正目标上的日期,无需重新复制文件,我认为这会有所帮助。

相关内容