我正在检查文件中的修改日期。我想测试一下/d -3
之后文件是否被修改。根据docs ,这将检查文件是否在该日期之前被修改过。我需要检查该文件是否在该日期之后被修改。该文档还指出我可以指定一个日期。我可能最终会这样做,尽管生成一个日期来检查会稍微复杂一些,如果可能的话我宁愿避免这样做。
我该怎么办?
forfiles /m Item_Lookup2.csv /d -3 >nul 2>nul && (
echo - updated
goto :PROCESS_FILE
) || (
echo - out of date
set outdated="true"
goto :CHECK_ERRORS
)
我找到了这个in this answer
最佳答案
您的方向是正确的,但是 forfiles/d -n
测试的是 n 天或更早修改的文件,而不是更晚的文件。您需要做的是反转您的 &&
和 ||
代码块,并且可能指定 4 天而不是 3 天。
如果匹配,则该文件已存在 4 天或更早,并被归类为已过时。如果没有匹配,则在过去 3 天内更新过。
试试这个:
forfiles /d -4 /m "Item_Lookup2.csv" >NUL 2>NUL && (
echo - out of date
set outdated="true"
goto :CHECK_ERRORS
) || (
echo - updated
goto :PROCESS_FILE
)
额外提示:如果您想进行一些测试,可以使用 PowerShell 命令手动操作文件的上次修改时间戳:
powershell "(gi Item_Lookup2.csv).LastWriteTime='6/1/2015 09:30:00 AM'"
... 会将 Item_Lookup2.csv 的上次修改时间戳设置为 6 月 1 日上午 9:30。加盐调味。
关于date - 检查文件在过去 xx 天后是否被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30620330/