¿Cómo deshabilitar el cierre automático del símbolo del sistema al finalizar?

18

Sé que hubo algunos trucos con versiones anteriores de Windows para lograr esto, pero no estoy seguro en Windows 7.

Si tenía un software que ejecuta un comando con interruptores que resulta en una ventana cmd.exe que se abre y cierra rápidamente, ¿cómo puedo volver a configurar el símbolo del sistema para que NO se cierre automáticamente una vez que se complete la tarea.

El truco aquí es que el comando que se está ejecutando es de hecho un archivo por lotes, incluye una declaración de pausa al final, pero la forma en que el software está tratando de ejecutar el comando está fallando. Como se cierra tan rápido, no sabemos qué error se devuelve, ya que se cierra tan rápido.

Mitos
fuente
Buena pregunta, en silencio también me hubiera gustado saber esto porque a veces vienen parches de juegos / software. Los archivos BAT se cierran después de que se ejecutan las instrucciones sin pausar y mostrar los comandos ejecutados al usuario final.
Boris_yo
1
¿Por qué no abrir una ventana de comandos, cd a ese directorio y ejecutar el lote desde allí? Eso se ejecutaría en la misma ventana de cmd sin cierre que permanecería abierta cuando finalice el lote. Eso podría darle algunas pistas para ayudar a depurarlo.
jdh
Gracias slhck, me señalas que esa ubicación parece la posibilidad más cercana para lograr lo que quiero dentro del registro de batfile / cmdfile.
Míticos

Respuestas:

8

En lugar de ejecutar ese .batarchivo directamente desde Explorer o cualquier otro método que use, inicie manualmente cmd.exe(si es necesario con privilegios elevados) y luego ejecute su .batarchivo desde allí. Luego, una vez completada su ejecución, todavía verá toda la salida ... al igual que en los viejos tiempos de DOS. :)

Mxx
fuente
Presione inicio y escriba cmdy presione enter, lanzará un símbolo del sistema. Simplemente arrastre y suelte lo que necesita para ejecutar (su script de Python o .exe) en las ventanas de cmd, y presione enter.
JinSnow
6

En su archivo .bat, use el pausecomando. Evitará que su archivo .bat se cierre.

Por ejemplo, este es mi archivo bat que uso para iniciar el servicio MySQL en mi PC:

net start MySQL
pause

Nota: En Windows 7, inicio este archivo .bat desde el nombre del administrador. Para hacer esto, haga clic con el botón derecho del mouse en su archivo .bat y elija "Comenzar desde el nombre del administrador" en el menú desplegable.

Nikita
fuente
5

Debe usar el modificador / k cuando llame.

Detalles útiles aquí .

Shevek
fuente
1

En las secuencias de comandos .bat, deja la "salida" al final de la secuencia de comandos para dejar abierta la ventana de comandos.

Una ventana de comando abierta por un script siempre se cierra al final del script porque depende del script. Abrir la ventana usted mismo y ejecutar el script no cierra la ventana a menos que haya especificado el comando "salir" al final del script porque la ventana no depende del script.

No parece que haya una manera de evitar que una ventana dependiente del script se cierre una vez que el script finaliza en Windows 7. Sin embargo, es posible que se graben mensajes de error en otro lugar. ¿El programa tiene un archivo de registro? ¿O hay entradas en los registros de Windows?

music2myear
fuente
0
pause>nul

Esto debería funcionar.

Responder
fuente
2
Por favor lea la pregunta otra vez cuidadosamente. Su respuesta no responde a la pregunta original. "El truco aquí es que el comando que se ejecuta es de hecho un archivo por lotes, incluye una declaración de pausa al final "
DavidPostill
0

Presione starty escriba cmdy presione enter, abrirá un símbolo del sistema. Simplemente arrastre y suelte lo que necesita para ejecutar (su script de Python, .exe ...) en las ventanas de cmd, y presione Entrar. (Si necesita ejecutar el cmd como administrador, busque el cmd en el menú de inicio, haga clic derecho sobre él, elija run as admin) (Funciona en Windows 7)

JinSnow
fuente
No publique la misma respuesta a varias preguntas. Si la misma información realmente responde a ambas preguntas, entonces una pregunta (generalmente la más nueva) debería cerrarse como un duplicado de la otra. Puede indicar esto votando para cerrarlo como un duplicado o, si no tiene suficiente reputación para eso, levante una bandera para indicar que es un duplicado. De lo contrario, adapte su respuesta a esta pregunta y no solo pegue la misma respuesta en varios lugares.
DavidPostill
0

Estaba teniendo este problema por un tiempo y finalmente me di cuenta de lo que está sucediendo.

Cuando comienza una tarea con el programador de tareas y es un archivo bat, abrirá la ventana cmd a C: \ WINDOWS \ system32 y NO donde se encuentra el archivo bat. ¿Por qué? ¡No tengo ni idea! Entonces, lo que tuve que hacer es agregar el directorio con cd al archivo bat.

Ejemplo a continuación:

cd c: \ blahblahblah

startmyprogram.exe

user38300
fuente
Su respuesta crea mucha confusión y no puede establecer la razón detrás del problema que OP encontró. Es mejor que consulte este enlace superuser.com/help/how-to-answer , lo ayudará a responder.
Rajesh S