Cómo mostrar la salida de la consola cuando se ejecuta el programa desde el símbolo del sistema

4

En Windows, cuando mi programa se inicia desde la línea de comandos, muestra una ventana y, en el símbolo del sistema, me permite ingresar otro comando. Es esencialmente el equivalente de Linux de

./myprogram.exe &

Ahora no quiero esto. Quiero ver la salida de mi consola. ¿Hay algún argumento de línea de comando o alguna otra forma de bloquear el símbolo del sistema para que no me dé otro mensaje hasta que el programa finalice?

Wonton
fuente

Respuestas:

2
start /wait "" myprogram.exe

La cadena vacía ""es el título de la ventana. Realmente no es necesario ya que lo tengo escrito, pero es una buena idea incluirlo. Se vuelve importante si la ruta del programa ejecutable requiere delimitación de comillas debido a espacios u otros caracteres especiales, en cuyo caso el programa será tratado erróneamente como el título de la ventana a menos que una cadena de título entre comillas lo preceda.

Hay varias opciones con el comando START. Escriba START /?desde el símbolo del sistema para obtener ayuda.

Tenga en cuenta que algunos programas de Windows inician procesos adicionales que hacen el trabajo real, y el proceso inicial finaliza. START /WAITno ayudaría con tal programa.

dbenham
fuente
2
deja de preguntar, pero los mensajes de depuración no se imprimen. el subproceso principal inicia un conjunto de subprocesos de servicio que hacen el trabajo real, luego inicia otro proceso y finaliza. ¿Alguna forma de obtener las salidas de depuración en este escenario?
wonton
1

Lo dudo. El comportamiento normal es como Linux. Creo que si quieres obtener el ./myprogram y el comportamiento en Windows, lo haces. C:\>start myprogram Pero como dices, no quieres eso. Pero el valor predeterminado es (como con Linux) no hacer eso.

El hecho de que su programa continúe ejecutándose después de que se muestra la ventana, me sugiere que esta funcionalidad está integrada en el programa, por lo que ejecuta la ventana como un nuevo hilo. No creo que cmd pueda detener eso.

barlop
fuente