我需要vbscript通過文件迭代文件並查找今天創建的所有文件。DateDiff vbscript查找當前日期文件
DateDiff("d",RFile.DateLastModified ,Date)=0
我可以看到有今天的文件夾中的40個文件,但是當腳本掃描,雖然所有的文件,它列出了不到40也許文件同時,也在尋找當時的部分。
任何人都可以告訴我如何使用datediff
函數,以便我可以實現所需的。
我希望它獲取所有文件的DATE部分是今天的日期部分,而不考慮時間部分。
我需要vbscript通過文件迭代文件並查找今天創建的所有文件。DateDiff vbscript查找當前日期文件
DateDiff("d",RFile.DateLastModified ,Date)=0
我可以看到有今天的文件夾中的40個文件,但是當腳本掃描,雖然所有的文件,它列出了不到40也許文件同時,也在尋找當時的部分。
任何人都可以告訴我如何使用datediff
函數,以便我可以實現所需的。
我希望它獲取所有文件的DATE部分是今天的日期部分,而不考慮時間部分。
當您在VBScript中創建沒有時間部分的日期時間值時,時間將自動假定爲00:00:00(請參閱返回值TimeValue(Date)
)。因此,DateDiff()
將文件的「上次修改時間」時間戳與00:00:00的當前日期進行比較,並在差異超過24小時時返回大於1(或小於-1)的值。
爲了比較只是兩個時間戳的日期部分使用FormatDateTime()
功能:
today = FormatDateTime(Date, vbShortDate)
If FormatDateTime(RFile.DateLastModified, vbShortDate) = today Then
'...
End If
你最好還是先enumarating文件與WMI manupulating日期只比天月和年屬性忽略時間戳。
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,日期),將不等於零,而我可以手動看到所有文件有今天的DateModefied的? –