如果我有可执行文件out.exe
并且stdout
被重定向到文件,
即:
out.exe > $file
现在,如果我这样做,它只输出:
<----------------------------->
80 columns per line to the file
有没有办法让控制台列数中的标准输出更宽?
它是out.exe
以某种方式弄乱列吗?
就我而言,我正在使用fxcopcmd.exe
。
答案 0 :(得分:40)
我前一段时间遇到过类似的问题。以下是我为解决这个问题所做的工作:
# 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)
答案 1 :(得分:11)
out-file
和out-string
cmdlet都有一个width
参数:
out.exe | out-file -width 132 -filePath $file
答案 2 :(得分:0)
如果您正在谈论Windows PowerShell - 只需打开“属性&gt;布局”增加缓冲区大小+窗口大小
答案 3 :(得分:-1)
在我的powershell脚本中,我将第一行设置为不进行回车 第二行我手动做了回报。
(在一个循环中)
Write-Host -nonewline "$var1;$var2"
Write-Host "`r"
这使得我的线被包裹但在每个单独的记录之后仍然返回时覆盖了这个问题。