Luego de consultar expertos en el tema, programadores de varias ramas y maestros hemos dado con la solución al problema y la compartimos en esta publicación.
Solución:
Incluye la frase:
@echo off
Justo en la parte superior de su guión de murciélago.
He propuesto en la pregunta de StackOverflow una forma de ejecutar un archivo por lotes en segundo plano (no se muestran ventanas de DOS)
Eso debería responder a su pregunta.
Aquí está:
Desde su primer script, llame a su segundo script con la siguiente línea:
wscript.exe invis.vbs run.bat %*
En realidad, está llamando a un script vbs con:
- la [path]nombre de su secuencia de comandos
- todos los demás argumentos que necesita su secuencia de comandos (
%*
)
Luego, invis.vbs llamará a su secuencia de comandos con el método Windows Script Host Run(), que toma:
- intWindowStyle: 0 significa “ventanas invisibles”
- bEsperar al regresar : false significa que su primer script no necesita esperar a que termine su segundo script
Vea la pregunta para el script invis.vbs completo:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
^
means "invisible window" ---|
Actualización después de los comentarios de Tammen:
Si está en una sesión de DOS y desea ejecutar otro script “en segundo plano”, un simple /b
(como se detalla en la misma pregunta antes mencionada) puede ser suficiente:
Puedes usar
start /b second.bat
para iniciar un segundo archivo por lotes de forma asíncrona desde el primero que comparte la ventana del primero.
Creo que esta es la solución más fácil y corta para ejecutar un archivo por lotes sin abrir la ventana de DOS, puede ser una gran distracción cuando desea programar un conjunto de comandos para que se ejecuten periódicamente, por lo que la ventana de DOS sigue apareciendo, aquí está su solución . Utilice un script VBS para llamar al archivo por lotes…
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:Batch Files mycommands.bat" & Chr(34), 0
Set WshShell = Nothing
Copie las líneas anteriores en un editor y guarde el archivo con la extensión .VBS. Edite el nombre del archivo .BAT y la ruta según corresponda.