【问题标题】:batch script reset the timestamp on all files批处理脚本重置所有文件的时间戳
【发布时间】:2012-02-12 04:56:34
【问题描述】:
在 Windows 7 中,如何清除或设置特定目录中所有文件和子文件的时间戳?
我已经使用fsutil behavior set disablelastaccess 1禁用了时间戳保存,
但是到现在它已经被保存了。我怎样才能清除它?
【问题讨论】:
标签:
windows
windows-7
batch-file
【解决方案1】:
这是一种古怪的语法,但copy file+ 将更新文件的最后写入属性而不对内容进行任何更改。该文件必须在当前目录中。
以上在 Vista 中有效。我也看到了copy file+,,。这在 Vista 中也可以使用,并且在某些其他版本的 Windows 中可能需要此表单。
当您说“使用 fsutil behavior set disablelastaccess 1 禁用时间戳保存”时,我不确定您的意思。每当文件更改时,最后写入的时间戳仍然会更新。唯一被禁用的是上次访问时间戳的更新。这是从 Vista 开始的默认行为。无论如何,最后一次访问时间戳是毫无价值的,因为 Windows 在访问时不会可靠地设置它。
您可以使用以下脚本轻松更新目录和子目录中所有文件的最后写入时间戳。
@echo off
setlocal
for /d /r "someDirectoryPath" %%D in (.) do (
cd "%%D"
copy *+
)