PowerShell ISE 不会刷新标准输出

PowerShell ISE 不会刷新标准输出

在 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 仅在此部分代码完成时才显示整行。使用非 ISE PowerShell 不会发生这种情况,该行将按预期分部分打印。
所以问题是:我能否以某种方式让 PowerShell ISE 禁用其内部缓冲区并直接打印程序的标准输出?

答案1

似乎这是不可能的,至少如果不通过反射来破解它(正如我被告知在 Microsoft 论坛上)。
我认为我应该使用另一个工具作为 cmd 的高级替代方案,例如安慰或者康埃穆(它也可以在其界面内运行 PowerShell 控制台)。

相关内容