用于查找当前日期文件的DateDiff vbscript

用于查找当前日期文件的DateDiff vbscript,vbscript,Vbscript,我需要vbscript在文件中迭代文件,并找到今天创建的所有文件 DateDiff("d",RFile.DateLastModified ,Date)=0 我可以看到今天的文件夹中有40个文件,但是当脚本扫描所有文件时,它列出的文件少于40个。也许它也在看时间部分 有谁能确切地告诉我如何使用datediff功能,以便实现所需的功能 我希望它能够获取日期部分为今天日期部分的所有文件,而不考虑时间部分。在VBScript中创建没有时间部分的日期时间值时,时间会自动假定为00:00:00(例如,请参

我需要vbscript在文件中迭代文件,并找到今天创建的所有文件

DateDiff("d",RFile.DateLastModified ,Date)=0
我可以看到今天的文件夹中有40个文件,但是当脚本扫描所有文件时,它列出的文件少于40个。也许它也在看时间部分

有谁能确切地告诉我如何使用
datediff
功能,以便实现所需的功能


我希望它能够获取日期部分为今天日期部分的所有文件,而不考虑时间部分。

在VBScript中创建没有时间部分的日期时间值时,时间会自动假定为00:00:00(例如,请参见
时间值(日期)
的返回值)。因此,
DateDiff()
将文件的“上次修改”时间戳与00:00:00的当前日期进行比较,并在差值超过±24小时时返回大于1(或小于-1)的值

要仅比较两个时间戳的日期部分,请使用以下函数:

today = FormatDateTime(Date, vbShortDate)
If FormatDateTime(RFile.DateLastModified, vbShortDate) = today Then
  '...
End If

您最好只使用WMI枚举文件,并手动填充日期,以便只比较日、月和年属性,而忽略时间戳

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colFiles = _
    objWMIService.ExecQuery("Select * From CIM_DataFile Where Drive = 'E:' and Path = '\\Test\\'")

For Each objFile in colFiles
    dtCreationDate = WMIDateStringToDate(objFile.CreationDate)
    If Day(Now)&Month(Now)&Year(Now) = Day(dtCreationDate)&Month(dtCreationDate)&Year(dtCreationDate) Then
      WScript.Echo objFile.Name
    End If
Next

Function WMIDateStringToDate(sCreatoionDate)
    WMIDateStringToDate = CDate(Mid(sCreatoionDate, 7, 2) & "/" & _
    Mid(sCreatoionDate, 5, 2) & "/" & Left(sCreatoionDate, 4) _
    & " " & Mid (sCreatoionDate, 9, 2) & ":" & _
    Mid(sCreatoionDate, 11, 2) & ":" & Mid(sCreatoionDate, 13, 2))
End Function

谢谢,你能想象一个场景吗?DateDiff(“d”,RFile.DateLastModified,Date)将不等于零,而我可以手动查看所有文件的DateModed是今天吗?