Mi problema es que en Windows, hay ventanas de línea de comandos que se cierran inmediatamente después de la ejecución. Para resolver esto, quiero que el comportamiento predeterminado sea que la ventana se mantenga abierta. Normalmente, este comportamiento se puede evitar con tres métodos que me vienen a la mente:
- Poner una
pause
línea después de los programas por lotes para solicitar al usuario que presione una tecla antes de salir - Ejecutar estos archivos por lotes u otras herramientas de manipulación de línea de comandos (incluso el servicio de inicio, reinicio, etc. con
net start xy
o algo similar) dentro decmd.exe
(Inicio - Ejecutar - cmd.exe) - Ejecutando estos programas con
cmd /k
esto:cmd /k myprogram.bat
Pero hay otros casos en los que el usuario:
- Ejecuta el programa la primera vez y no sabe que el programa en cuestión se ejecutará en el Símbolo del sistema (Procesador de comandos de Windows), por ejemplo, cuando ejecuta un acceso directo desde el menú Inicio (o desde otro lugar), O
- Le resulta un poco incómodo ejecutar cmd.exe todo el tiempo y no tiene el tiempo / la oportunidad de reescribir el código de estos comandos en todas partes para detenerlos o evitar salir explícitamente.
Leí un artículo sobre cómo cambiar el comportamiento predeterminado cmd.exe
al abrirlo explícitamente, creando una entrada de ejecución automática y manipulando su contenido en estas ubicaciones:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor\AutoRun
(Los elementos de ejecución automática son _String values_
...)
Lo puse cmd /d /k
como valor para intentarlo, pero esto no cambió el comportamiento de las cosas mencionadas anteriormente en absoluto ... Simplemente cambió el comportamiento de la ventana de la línea de comandos al abrirla explícitamente (Start-Run- cmd.exe).
¿Entonces, cómo funciona? ¿Me puede dar alguna idea para resolver este problema?
stdout
de manera constante que nunca debieron ser visibles por una buena razón.