¿Puedo ejecutar un archivo por lotes de Windows sin un símbolo del sistema visible?

¿Puedo ejecutar un archivo por lotes de Windows sin un símbolo del sistema visible?

Los archivos por lotes son una forma conveniente de ejecutar una serie de comandos en Windows, pero ¿existe alguna forma de ejecutarlos de forma invisible en segundo plano? Siga leyendo para descubrir cómo.

SuperUser, una subdivisión de Stack Exchange, una agrupación comunitaria de sitios web de preguntas y respuestas, nos ofrece la sesión de preguntas y respuestas de hoy.

La cuestión

El jugador SuperUser Jake quiere ejecutar el archivo BAT de manera invisible, escribe:

Instalé una gema de rubí llamada Redcar, que se inicia desde la línea de comandos. Cuando se ejecuta, roba el shell hasta que sale, por lo que necesito crear una nueva ventana de shell para seguir trabajando desde la línea de comandos. El shell que estoy usando es el shell GITBash de MySysGit.

Encontré un archivo Redcar.bat que se supone que debe iniciar Redcar como un acceso directo, supongo, pero no quiero que se abra la ventana adicional del símbolo del sistema cada vez que ejecuto el archivo BAT.

¿Cómo puedo ejecutar la prueba sin ver el mensaje?

¿Existe una solución para la lujuria furtiva y veloz de Jake?

Las respuestas

Afrazier, colaborador de superusuario, responde con una combinación de buenas y malas noticias:

No puede: ejecutar un archivo por lotes con el símbolo del sistema integrado mantendrá una ventana abierta hasta que se complete el archivo por lotes.

Lo que puede hacer es tomar medidas para asegurarse de que el archivo por lotes se cierre lo más rápido posible. Si es posible, modifique el archivo por lotes para ejecutar cualquier programa con el start pedido. Por defecto, start regresa inmediatamente sin esperar a que termine el programa, por lo que el archivo por lotes continuará ejecutándose y, presumiblemente, se cerrará inmediatamente. Agregue a eso la modificación de su acceso directo para ejecutar el archivo por lotes minimizado, y solo verá parpadear la barra de tareas sin siquiera ver una ventana en la pantalla.

Una advertencia sobre esto es que si está ejecutando un programa en modo de consola, que es lo que hacen muchos intérpretes de scripts, el archivo por lotes esperará a que el programa termine y el uso de start abrirá una nueva ventana de consola. Lo que debe hacer en este caso es ejecutar la versión de Windows del intérprete en lugar de la basada en la consola; no start necesario. Por Perl correría wperl.exe en lugar de perl.exe. Para Python, esto es pythonw.exe en lugar de python.exe. La antigua distribución win32 Ruby que descargué tiene rubyw.exe, que debería hacer lo mismo.

Una última posibilidad es utilizar una herramienta de terceros para ejecutar el símbolo del sistema con una ventana oculta. He oído hablar de esas cosas, pero nunca las he usado, así que no sé nada en particular que contarte.

Los lectores también le señalaron otro hilo de superusuario que destaca cómo puede utilizar un script de Visual Basic para ir más allá de minimizar la visibilidad y ocultar por completo el indicador de CMD. En este hilo, Harry MC explica:

Solución 1:

Guarde esta línea de texto como un archivo invisible.vbs:

CreateObject («Wscript.Shell»). Ejecute «» «» & WScript.Arguments (0) & «» «», 0, False

Para ejecutar cualquier programa o archivo por lotes de forma invisible, utilícelo así:

wscript.exe «C: Wherever invisible.vbs» «C: Some Other Place MyBatchFile.bat»

Para poder también transmitir / retransmitir una lista de argumentos, solo use dos comillas dobles

CreateObject («Wscript.Shell»). Ejecute «» & WScript.Arguments (0) & «», 0, False

Por ejemplo: Invisible.vbs «Kill.vbs ME.exe»

Solucion 2:

Utilice una herramienta de línea de comandos para iniciar un proceso de forma silenciosa: Calma.

El uso de cualquiera de las soluciones anteriores, dependiendo de qué tan cómodo se sienta con VBS y las herramientas de terceros o no, minimizará la visibilidad de la ventana de CMD o la eliminará por completo.

¿Tiene algo que agregar a la explicación? Habla en los comentarios. ¿Quiere leer más respuestas de otros usuarios expertos en tecnología de Stack Exchange? Consulte el hilo de discusión completo aquí..

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas