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($sFolderOptional $sComputerOptional $lWithin)
    If Not Exist($sFolderExit(3EndIf
    If Not $sComputer $sComputer = "." EndIf
    If Not $lWithin $lWithin = 10 EndIf
    If $lWithin < 0 Exit(1EndIf
   
    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