修改文件夹而不修改时间戳

时间:2015-01-19 17:50:09

标签: windows date batch-file touch file-attributes

我希望在不修改日期的情况下更改文件夹内容。

我有时会对旧文件夹进行清理运行,尝试腾出空间或清理临时文件和死角,或添加相关链接或标签以便查找。当我这样做时,我不想将文件夹更改为修改日期:今天2015 ,因为我的文件夹按修改日期排序。 2010年的项目应保留其自2010年的最后修改日期的时间戳,因为我只进行了元更改,而不是实际更改。

目前我使用SK TimestampAttribute Changer。在我想要对其进行更改之前,我右键单击每个文件夹,打开“属性”窗口,进行修改,然后单击“应用”以覆盖原始时间戳。

我想更自动化,比如在根文件夹D:\Workspace上设置 清理模式 ,直到我弹出该状态否子目录Project2010Project2013 ...,Project2015

中的时间戳会发生变化

要么至少能够复制2个文件之间的时间戳。与提及@COPY /B %1+,, %1的{​​{3}}一样,但与当前日期无关。 用法如:touch D:\Temp\Project2010\Source.txt Destination.ext

1 个答案:

答案 0 :(得分:1)

我上面提到了一些建议 - 一个涉及修改系统的日期/时间,另一个涉及robocopy。系统日期/时间有点麻烦,需要访问Internet,robocopy /dcopy:t开关在我的测试中根本不起作用。

但无论如何我找到了更好的解决方案。使用for循环捕获文件夹的变量日期时间。然后,在您完成所需的任何更改后,使用powershell将文件夹的日期/时间恢复原状。

@echo off
setlocal

set "dir=path\to\directory"
for %%I in (%dir%) do set "datetime=%%~tI"

:: Do whatever deletions and other maintenance you want here.

:: Then after all changes have completed, reset the dir timestamp.
powershell -command "(Get-Item '%dir%').LastWriteTime=(Get-Date '%datetime%')"