PowerShell ISE не сбрасывает стандартный вывод


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 отключить свой внутренний буфер и напрямую распечатать стандартный вывод программы?

Ответы:


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.