3

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

./myprogram.exe &

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

2 ответа2

2
start /wait "" myprogram.exe

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

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

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

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .