我正在使用VBS1,启动WScript.Shell
,启动另一个VBS2。
VBS1在更大的上下文中运行,我需要保持该进程运行和工作,同时等待我的VBS2的结果(大约20-60秒)
在脚本中使用Sleep
是非阻塞的,但阻止了我的进程,所以我需要另一个选项。
这是我到目前为止的代码:
strFinalCommand = "wscript.exe " & CStr(ScriptPath) & " " & CStr(strParams)
Set ObjShell = CreateObject("WScript.Shell")
Set ShellExec = ObjShell.Exec(strFinalCommand)
hitTimeout = False
SleepCounter = 0
Do While ShellExec.Status = 0 'WshRunning
ActiveSession.Sleep 100 '--> On changing sleep-duration, please change multiplier in IF below, too
SleepCounter = SleepCounter + 1
If SleepCounter >= TimeoutDuration * 10 Then 'TimeoutDuration * 2
hitTimeout = True
ShellExec.Terminate
Exit Do
End If
Loop
Set ShellExec = Nothing
Set ObjShell = Nothing
If hitTimeout = False Then
ReportSuccess = True
End If
关于该脚本,一切运行正常,但运行进程的其他操作被阻止。
有人可以建议另一个Sleep
,这是非阻塞的吗?