Программа WinForms может выводить необходимые данные в стандартный поток / канал вывода. Что-то вроде:
Console.WriteLine(outputDataString);
(Console.WriteLine
сокращение от Console.Out.WriteLine
)
Проект приложения не обязательно должен быть изменен на «Консольное приложение» (как предлагается в вопросах / ответах, подобных этому: « windows form .. console.writeline () где находится console? » ), хотя, хотя и действует предостережение: записанные данные не будут отображаться в консоли вызывающей стороны (например, если приложение WinForms было запущено из окна консоли), но они все равно будут записаны в стандартный поток вывода / канал. (*)
Если, например, пакетный файл должен захватывать выходные данные программы, для этой цели можно использовать консольную команду for
. Упрощенный пример:
for /f "usebackq" %%i in (`pathToYourWinFormsExecutable.exe`) do echo %%i
(Чтобы получить дополнительную помощь в адаптации этого к вашим потребностям, откройте окно консоли и введите for /?
. Это даст подробное объяснение того, что вы можете сделать с помощью команды for
.)
(*) Мнение стороны:
Тем не менее, возможно, это необычное и странное поведение, позволяющее программе записывать данные в стандартный выходной поток / канал, причем эти данные никогда не отображаются в окне консоли, если они явно не перехвачены или не перенаправлены. В зависимости от сценария реального использования, а также жизненного цикла программы, выполняющей это, реализация такого «странного» нелогичного поведения может быть не рекомендуемой вещью. Если обычное, нормальное поведение записи данных в стандартный выходной поток / канал появляется в окне консоли нужного абонента, предпочтительным подходом будет изменение проекта на «Консольное приложение».