0

嘿伙计们,我正在寻找一个批处理文件来告诉我今天是否修改了某些文件夹(我会每天早上运行它)。我很高兴指定要查询的每个文件夹,但我还没有找到任何满足我要求的文件夹。如果有人知道 .bat 的代码是什么,那就太棒了 :) 提前致谢。

4

2 回答 2

1

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

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

这通过将文件时间戳的日期部分与当前日期进行比较来工作。

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

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

于 2011-02-14T17:32:34.597 回答
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 中做所有事情)

于 2011-01-19T03:24:42.643 回答