Página principal » cómo » ¿Puedo ejecutar un archivo por lotes de Windows sin una solicitud de comando visible?

    ¿Puedo ejecutar un archivo por lotes de Windows sin una solicitud de comando visible?

    Los archivos de proceso por lotes son una forma útil de ejecutar una serie de comandos en Windows, pero ¿hay alguna forma de ejecutarlos de manera invisible en segundo plano? Sigue leyendo para saber cómo.

    La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..

    La pregunta

    El lector superusuario Jake quiere ejecutar un archivo BAT de manera invisible, escribe:

    He instalado una gema de rubíes llamada Redcar, que se inicia desde la línea de comandos. Cuando se ejecuta, roba el shell hasta que termina, así que tengo que crear una nueva ventana de shell para continuar haciendo el trabajo de línea de comandos. El shell que estoy usando es el shell GITBash de MySysGit.

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

    ¿Cómo acabo de ejecutar el BAT sin ver el indicador?

    ¿Hay una solución para el pronto deseo cauteloso de Jake??

    Las respuestas

    El colaborador de SuperUser Afrazier responde con una combinación de malas y buenas noticias:

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

    Lo que tu puede Tome medidas para asegurarse de que el archivo por lotes salga lo más rápido posible. Si es posible, modifique el archivo por lotes para ejecutar cualquier programa con el comienzo mando. Por defecto, comienzo regresa inmediatamente sin esperar a que el programa salga, por lo que el archivo por lotes continuará ejecutándose y, presumiblemente, saldrá inmediatamente. Combine eso con la modificación de su acceso directo para ejecutar el archivo por lotes minimizado, y solo verá la barra de tareas parpadear sin siquiera ver una ventana en pantalla.

    Una advertencia a esto es que si está ejecutando un programa en modo consola, como muchos intérpretes de script son, el archivo por lotes esperará a que el programa se cierre y comienzo generará una nueva ventana de consola. Lo que debe hacer en este caso es ejecutar la versión del intérprete basada en Windows en lugar de la versión basada en la consola: no comienzo necesario. Para Perl, correrías wperl.exe en lugar de perl.exe. Para Python, es pythonw.exe en lugar de python.exe. La antigua distribución de Ruby Win32 que he descargado tiene rubyw.exe, que debe hacer lo mismo.

    Una última posibilidad es usar una herramienta de terceros para ejecutar el símbolo del sistema con una ventana oculta. He oído hablar de tales cosas, pero nunca he tenido un uso para ellas, así que no sé nada en particular para señalarle.

    Los lectores también lo señalaron a otro subproceso de SuperUser que resalta cómo se puede usar un Script de Visual Basic para ir más allá de minimizar la visibilidad y ocultar el mensaje de CMD. En ese hilo, Harry MC explica:

    Solución 1:

    Guarda esta una línea de texto como archivo invisible.vbs:

    CreateObject (“Wscript.Shell”). Ejecute “” ”” & WScript.Arguments (0) & “” ””, 0, False

    Para ejecutar cualquier programa o archivo por lotes de manera invisible, úselo así:

    wscript.exe “C: \ Wherever \ invisible.vbs” “C: \ Some Other Place \ MyBatchFile.bat”

    Para poder pasar / transmitir una lista de argumentos, use solo dos comillas dobles

    CreateObject (“Wscript.Shell”). Ejecute “” & WScript.Arguments (0) & “”, 0, False

    por ejemplo: Invisible.vbs "Kill.vbs ME.exe"

    Solución 2:

    Utilice una herramienta de línea de comandos para iniciar un proceso silenciosamente: Silencio.

    El uso de cualquiera de las soluciones anteriores, según su nivel de comodidad con VBS y herramientas de terceros o no, reducirá como mínimo la visibilidad de la ventana de CMD o la eliminará directamente.


    ¿Tienes algo que agregar a la explicación? Apague el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.