用于确定修改日期的批处理文件

时间:2011-01-19 03:04:03

标签: date batch-file last-modified

嘿伙计们,我正在寻找一个批处理文件来告诉我今天是否修改了某些文件夹(我每天早上都会运行它)。我很乐意指定要查询的每个文件夹,我还没有找到符合我要求的任何内容。如果有人知道他们的头顶是什么代码.bat将是什么,那将是非常棒的:)提前谢谢。

2 个答案:

答案 0 :(得分:1)

这是一个应该可以解决问题的批处理文件:

@echo off
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
for /D %%Q IN (*.*) DO (
  set FILETIME=%%~tQ
  if "!FILETIME:~0,10!"=="%DATE:~4%" echo %%Q
)

这可以通过比较文件时间戳的日期部分与当前日期来实现。

如上所述,它会检查当前目录中的目录,但您可以将*。*替换为您要测试的任何文件规范(或将其作为参数传递)。

我不知道这是否适用于具有任何其他默认英语/美国区域设置的系统,但如果还没有,可能会调整它以使其正常工作。我也不知道如果在不同时区的用户之间共享系统会发生什么。

答案 1 :(得分:0)

你可以使用vbscript

Set objFS = CreateObject( "Scripting.FileSystemObject" )
strFolder = WScript.Arguments(0)
Set objFolder = objFS.GetFolder(strFolder)
If DateDiff("d", Now, objFolder.DateLastModified ) = 0 Then
    WScript.Echo "0"
End If 
批处理文件(或命令行)中的

C:\test>cscript //nologo test.vbs myFolderName

使用for循环来捕获输出。 (或者您甚至可以在vbscript中执行所有操作)