如果我有一个可执行的out.exe
,并且它的stdout
被重定向到文件,
即:out.exe > $file
现在,如果我这样做,它只会输出:
<----------------------------->
80 columns per line to the file
有没有办法使标准输出的控制台列数更宽?
是
out.exe
以某种方式弄乱了列吗?
就我而言,我正在使用
fxcopcmd.exe
。
请您参考如下方法:
不久前,我遇到了类似的问题。这是我修复它的方法:
# Update output buffer size to prevent clipping in Visual Studio output window.
if( $Host -and $Host.UI -and $Host.UI.RawUI ) {
$rawUI = $Host.UI.RawUI
$oldSize = $rawUI.BufferSize
$typeName = $oldSize.GetType( ).FullName
$newSize = New-Object $typeName (500, $oldSize.Height)
$rawUI.BufferSize = $newSize
}
它只是在主机的RawUI输出缓冲区上设置了一个新的500个字符的宽度(尽管,由于我们在多个环境中运行构建,并且我们不希望脚本失败,因为它不能使输出变大一点,因此代码是防御性的)。
如果您在始终设置RawUI的环境中运行(大多数情况下会这样做),则可以大大简化代码:
$Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (500, 25)