¿Qué comando puedo poner al final de un archivo por lotes para evitar el cierre automático de la consola después de la ejecución del archivo?
510
¿Qué comando puedo poner al final de un archivo por lotes para evitar el cierre automático de la consola después de la ejecución del archivo?
Respuestas:
En archivos por lotes de Windows / DOS:
Esto imprime un buen
"Press any key to continue . . . "
mensajeO, si no quieres el
"Press any key to continue . . ."
mensaje, haz esto en su lugar:fuente
Depende de la pregunta exacta!
Normalmente
pause
hace el trabajo dentro de un archivo .bat .Si desea que cmd.exe no se cierre para poder seguir escribiendo, use el
cmd /k
comando al final del archivo.fuente
cmd /k
antes su comando.& cmd /k
no funcionaSimplemente sentí la necesidad de aclarar qué
/k
hace (desde el sitio web de Windows):Entonces,
cmd /k
sin un comando de seguimiento al final del archivo bat, solo mantendrá lacmd.exe
ventana abierta para su uso posterior.Por otro lado,
pause
al final de un archivo por lotes, simplemente pausará el proceso y terminarácmd.exe
al presionar el primer botónfuente
La siguiente forma de tener comandos en un archivo por lotes abrirá nuevas ventanas de símbolo del sistema y las nuevas ventanas no se cerrarán automáticamente.
fuente
Si está utilizando Maven y desea omitir el tipeo y evitar que la consola se cierre para ver el resultado, debe usar el
CALL
comando en el script, además de 'mvn clean install'.De esta manera cerrará la consola
Así la consola permanecerá abierta
Si no usa el
CALL
comando, ninguno de los ejemplos pasados funcionará.fuente
call <myCommand>
resuelto este problema: mi aviso dejó de cerrarse después de la primera ejecuciónAgregue
cmd.exe
como una nueva línea debajo del código que desea ejecutar:fuente
python script.py %1 && cmd
mi manera es escribir un lote real (diciendo "foo.bat") para terminar el trabajo; luego cree otro "start.bat":
Creo que esto es extremadamente útil cuando configuro variables de entorno únicas.
fuente
cmd /k
(sin ningún comando) al final delfoo.bat
archivo y ejecutarlo. No necesitas unstart.bat
archivo separado .Llame
cmd
al final del archivo por lotes.fuente
además
pause
.se puede usar. Esperará la entrada del usuario y liberará el flujo cuando se presione enter.
o
que hará lo mismo excepto que no se mostrará nada de la entrada del usuario ni permanecerá en el historial de comandos.
fuente
Posibilidad 1: solo crea 2 archivos .bat y escribe en el primero:
El archivo por lotes 2 es el archivo que no se cerrará al final. Entonces, cuando abra el lote nr.1, comenzará el segundo y se cerrará. Cuando finalice el segundo, no se cerrará por completo (siempre que no ponga la salida al final)
Posibilidad 2: archivo por lotes 1:
Cuando finalice el segundo archivo, continuará con el archivo 1 nuevamente y generará el resto. Con eso incluso puedes hacer manejadores de errores. Si nr.1 falla, entra en nr.2 y lo muestra
fuente
Este pequeño truco le pide al usuario que ingrese una clave y la almacena en la variable% exitkey% (aunque esta variable podría llamarse como quiera).
NB: el espacio después de '=' es muy importante
fuente
o
fuente
Sé que llego tarde pero mi forma preferida es:
De esta forma, el usuario no puede salir con enter.
fuente
Tuve problemas con las respuestas aquí, así que se me ocurrió esto, que funciona para mí (TM):
fuente
Hay dos formas de hacerlo dependiendo del caso de uso
1) Si desea que el indicador de cmd de Windows permanezca abierto para que pueda ver el resultado de la ejecución y cerrarlo después; utilizar
2) si desea que el indicador de cmd de Windows permanezca abierto y le permita ejecutar algunos comandos posteriores; utilizar
fuente
Fácil, agrega cmd a tu última línea de murciélago, ¡PERO! Si restablece o borra la ruta del sistema, debe iniciar su cmd con la ruta completa, como:
Por ejemplo, tengo un archivo bat para restablecer jdk a la versión anterior como esta:
desde que restablecí la ruta del sistema, tengo que ejecutar cmd con la ruta completa, o el sistema no puede encontrar cmd.exe, no podrá ejecutar cmd y simplemente cerrará la ventana y no podrá ver el mensaje de error .
fuente