0

我在 VBS 文件中有以下代码。如何监视Folder1\Folder2\Folder3\2020以特定字符串开头的文件

    file_starts_with = "abc" & Year(Now()) & " " & Month(Now()) & " " & Day(Now())
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceCreationEvent WITHIN 10 _
     WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and TargetInstance.GroupComponent= 'Win32_Directory.Name=""P:\\\\Folder1\\\\Folder2\\\\Folder3\\\\2020""'")
     Do
         Set objLatestEvent = colMonitoredEvents.NextEvent
         'more code here
     Loop
4

1 回答 1

0

参考WMI 和文件系统监控,你可以这样写:


CURRENT_YEAR=Year(Now)
sPath = "F:\Folder1\Folder2\Folder3\"& CURRENT_YEAR
sDrive = split(sPath,":")(0)
sFolders1 = split(sPath,":")(1)
sFolders = REPLACE(sFolders1, "\", "\\\\")
TargetFolder = DblQuote(sDrive & ":" & sFolders)

wscript.echo sPath
wscript.echo TargetFolder

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

Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    ("Select * From __InstanceCreationEvent Within 2 Where " _
    & "Targetinstance Isa 'CIM_DirectoryContainsFile' and " _
    & "TargetInstance.GroupComponent= " _
    & "'Win32_Directory.Name="& TargetFolder &"'")

' The loop
Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    Wscript.Echo objLatestEvent.TargetInstance.PartComponent
Loop
'-------------------------------------------------------------
Function DblQuote(str)
    DblQuote = chr(34) & str & chr(34)
End Function
'-------------------------------------------------------------
于 2020-10-31T04:26:13.813 回答