Как отобразить вывод консоли при запуске программы из командной строки

4

В Windows, когда моя программа запускается из командной строки, она отображает окно, и в командной строке она позволяет мне ввести другую команду. По сути, это эквивалент Linux

./myprogram.exe &

Теперь я не хочу этого. Я хочу увидеть мой вывод консоли. Есть ли какой-либо аргумент командной строки или какой-либо другой способ заблокировать командную строку от выдачи мне другой подсказки, пока программа не завершится?

пангасиус
источник

Ответы:

2
start /wait "" myprogram.exe

Пустая строка ""является заголовком окна. Это на самом деле не нужно, как я написал, но это хорошая идея, чтобы включить его. Это становится важным, если путь к вашей исполняемой программе требует заключенных в кавычки из-за пробелов или других специальных символов, и в этом случае программа будет ошибочно восприниматься как заголовок окна, если строка заголовка в кавычках не предшествует ему.

Есть несколько вариантов с командой СТАРТ. Введите START /?из командной строки, чтобы получить помощь.

Обратите внимание, что некоторые программы Windows запускают дополнительные процессы, выполняющие реальную работу, и начальный процесс завершается. START /WAITне поможет с такой программой.

dbenham
источник
2
он перестает запрашивать, но сообщения отладки не печатаются. основной поток запускает несколько сервисных потоков, выполняющих реальную работу, затем запускает другой процесс и завершает работу. Любой способ получить выходные данные отладки в этом сценарии?
Wonton
1

Я сомневаюсь. Нормальное поведение похоже на Linux. Я думаю, что если вы хотите получить ./myprogram и поведение в Windows, вы делаете. C:\>start myprogram Но, как вы говорите, вы этого не хотите. Но по умолчанию (как и в Linux) это не делается.

Тот факт, что ваша программа продолжает работать после показа окна, подсказывает мне, что эта функция встроена в программу, поэтому она выполняет окно как новый поток. Я не думаю, что CMD может остановить это.

barlop
источник