vbs - wscript.shell vba
WScript.Shell y ejecuciĆ³n de bloqueo? (2)
Estoy usando WScript para automatizar algunas tareas, usando WScript.Shell para llamar a programas externos.
Sin embargo, en este momento no espera a que termine el programa externo, sino que continúa. Esto causa problemas porque tengo algunas tareas que dependen de que otras terminen primero.
Estoy usando código como:
ZipCommand = "7za.exe a -r -y " & ZipDest & BuildLabel & ".zip " & buildSourceDir
Set wshShell = WScript.CreateObject("Wscript.Shell")
wshShell.run ZipCommand
¿Hay alguna manera de hacer esto para que se bloquee hasta que vuelva el programa ejecutado?
Resulta que, mientras que el bucle es severo CPU hog: P
Encontré una mejor manera:
ZipCommand = "7za.exe a -r -y " & ZipDest & BuildLabel & ".zip " & buildSourceDir
Set wshShell = WScript.CreateObject("Wscript.Shell")
wshShell.Run ZipCommand,1,1
Los dos últimos argumentos son Show window y Block Execution :)
Si utiliza el método "Exec", devuelve una referencia, por lo que puede sondear la propiedad "Estado" para determinar cuándo se completa. Aquí hay una muestra de msdn :
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec(ZipCommand)
Do While oExec.Status = 0
WScript.Sleep 100
Loop