Tengo un archivo bat como este:
ipconfig
Eso imprimirá la información de IP en la pantalla, pero antes de que el usuario pueda leer esa información, CMD se cierra.
Creo que CMD asume que el script ha terminado, por lo que se cierra.
¿Cómo mantengo CMD abierto una vez finalizado el script?
batch-file
cmd
pattyd
fuente
fuente
pause
cual es una buena solución (y es por eso que voté por esta respuesta) pero no una que realmente resuelva el problema porque después de que el usuario golpeaEnter
oSpace
la ventana se cerrará. ..Respuestas:
Dependiendo de cómo esté ejecutando el comando, puede colocar
/k
despuéscmd
para mantener la ventana abierta.Simplemente agregar
cmd /k
al final de su archivo por lotes también funcionará. Gracias a Luigi D'Amico, quien publicó sobre esto en los comentarios a continuación.fuente
cmd /k
al final.Poner
pause
al final de su archivo .BAT.fuente
Solo agregue
@pause
al final.Ejemplo:
O también puedes usar:
fuente
@pause
ypause
se puede ver visualmente en esta respuesta: stackoverflow.com/questions/17957076#60053224Agregar
pause
(Windows 7) al final no funcionó para mí,pero agregar el
cmd /k
frente de mi comando sí funcionó.Ejemplo:
fuente
Cuando se inicia el archivo .bat no desde la línea de comando (por ejemplo, haciendo doble clic).
fuente
start cmd /k
hizo la magia por mí De hecho, lo usé para preparar la aplicación cordova phonegap, ejecuta el comando, muestra el resultado y espera a que el usuario lo cierre. A continuación se muestra el ejemplo simpleLo que utilicé en mi caso
Actualizar
Incluso podría tener un título para esto usando
start "My Title" echo Hello, World!
fuente
Si está iniciando el script dentro de la línea de comando, luego agregue
exit /b
para mantener abierto CMDfuente
ipconfig
y otros archivos por lotes integrados es una muy mala idea .En Windows agregue '& Pause' al final de su comando en el archivo.
fuente
También estaba confundido sobre por qué estamos agregando un
cmd
al principio y me preguntaba si primero tenía que abrir el símbolo del sistema. Lo que debe hacer es escribir el comando completo junto concmd /k
. Por ejemplo, suponga que su nombre de archivo por lotes es "my_command.bat", que ejecuta el comando,javac my_code.java
entonces el código en su archivo por lotes debe ser:Básicamente, no es necesario abrir el símbolo del sistema en la carpeta actual y escribir el comando anterior, pero puede guardar este código directamente en su archivo por lotes y ejecutarlo directamente.
fuente
el segundo comando hace que su ventana de cmd no se cierre. Lo importante es que aún puede ingresar un nuevo comando
fuente
Como nota al margen, esto también funciona cuando se ejecuta un comando directamente desde la barra de búsqueda en Windows.
por ejemplo, la ejecución
ipconfig
directa cerrará directamente la ventana cmd después de que el comando haya salido.Usando
cmd \k <command>
will - que era lo que estaba tratando de hacer cuando encontré esta respuesta.Tiene la ventaja adicional de reconocer siempre el comando que está intentando ejecutar. Por ejemplo, ejecutar
echo hello world
desde la barra de búsqueda no funcionará porque ese no es un comando, perocmd \k echo hello world
funciona bien.fuente