1

У меня небольшая проблема при запуске консольной программы в PowerShell ISE: когда программа записывает строку порциями, используя flush, PowerShell не будет показывать строку, пока программа не запишет конец строки. Например, программа делает что-то вроде этого (C++):

std::cout << "Doing something time-consuming..." << std::flush;
// Do something for some time
std::cout << " done in " << x << " seconds" << std::endl;

А PowerShell ISE покажет всю строку только после завершения этого раздела кода. С PowerShell без ISE этого не происходит, строка печатается порциями, как и ожидалось.
Таким образом, вопрос заключается в следующем: можно ли как-нибудь заставить PowerShell ISE отключить свой внутренний буфер и напрямую распечатать стандартный вывод программы?

1 ответ1

0

Похоже, что это невозможно, по крайней мере, без взлома через Reflection (как мне сказали на форуме Microsoft).
Я думаю, что мне просто нужно использовать другой инструмент в качестве расширенной альтернативы cmd, например, Console или ConEmu (который также может запускать консоль PowerShell внутри своего интерфейса).

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