Desde mi own question:
start /b myProgram.exe params...
obras si se inicia el programa desde una sesión de DOS existente.
Si no es así, llame a un script VB
wscript.exe invis.vbs myProgram.exe %*
El Windows Script Host Run() method toma:
- entEstiloVentana: 0 significa "ventanas invisibles"
- bWaitOnReturn: false significa que su primer script no necesita espere a que finalice su segunda secuencia de comandos
Aquí está invi s.vbs:
set args = WScript.Arguments
num = args.Count
if num = 0 then
WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
WScript.Quit 1
end if
sargs = ""
if num > 1 then
sargs = " "
for k = 1 to num - 1
anArg = args.Item(k)
sargs = sargs & anArg & " "
next
end if
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
Tenga en cuenta que esto va a hacer las cosas no agradables si está utilizando la consola interactiva en lugar de sólo hacer doble clic en un archivo por lotes. En general, hay poca o ninguna necesidad de poner 'exit' en un archivo por lotes. – Joey
Intenté este comando en Win8. No estoy seguro si es diferente, pero tenga en cuenta que debe proporcionarle un título de Ventana como primer parámetro.Cuando yo corría de la manera descrita Patrick, sería simplemente abrir una nueva ventana de comandos con "MyProgram.EXE" como el título de la ventana: 'start "VPN" "C: \ Archivos de programa (x86) \ Cisco \ Cisco AnyConnect Secure Mobility Client \ vpnui.exe "' –
Tenga en cuenta que si su comando contiene espacios y se puso en cotizaciones, debe agregar un parámetro adicional citado ante sí, como START interpreta el primer parámetro citado nombre de la ventana y sólo el segundo parámetro de comando como folowing nombre. –