|
Turned the above script into a function.
Action: Pauses script until a new file appears in the target directory.
Returns: Filename
Break On
$nul = SetOption("WrapAtEOL","On") $nul = SetOption("Explicit","On")
Dim $,$sFile
$sFile = fnFileCreationMon("E:\Scripts") @ERROR " | " @SERROR ?
$sFile ?
Get $
Function fnFileCreationMon($sFolder, Optional $sComputer, Optional $lWithin) If Not Exist($sFolder) Exit(3) EndIf If Not $sComputer $sComputer = "." EndIf If Not $lWithin $lWithin = 10 EndIf If $lWithin < 0 Exit(1) EndIf Dim $objWMI,$colMonEvents,$objEvent $sFolder = Join(Split($sFolder,"\"),"\\\\") $objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" + $sComputer + "\root\cimv2") If @ERROR<0 Exit VAL("&"+Right(DecToHex(@ERROR),4)) EndIf $colMonEvents = $objWMI.ExecNotificationQuery ("SELECT * FROM __InstanceCreationEvent " + "WITHIN " + $lWithin + " WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and " + "TargetInstance.GroupComponent='Win32_Directory.Name=" + '"' + $sFolder + '"' + "'") If @ERROR<0 Exit VAL("&"+Right(DecToHex(@ERROR),4)) EndIf $objEvent = $colMonEvents.NextEvent $fnFileCreationMon = Join(Split(Split($objEvent.TargetInstance.PartComponent,'"')[1],"\\"),"\") EndFunction
|