web-dev-qa-db-ja.com

PowerShellの出力列幅

実行ファイルがある場合out.exeおよびstdoutはファイルにリダイレクトされます。

out.exe > $file

今私がこれをすると、それは出力するだけです:

<-----------------------------> 
80 columns per line to the file

コンソールの列数で標準出力を広くする方法はありますか? out.exeそれはどういうわけか列をめちゃくちゃにしていますか?私の場合、私はfxcopcmd.exe

31
maxfridbe

しばらく前に同様の問題が発生しました。これを修正するために私がしたことは次のとおりです:

# 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)
41
Emperor XLII

両方のout-fileおよびout-stringコマンドレットにはwidthパラメータがあります:

out.exe | out-file -width 132 -filePath $file
12
Lee

Windows PowerShellについて話している場合-"プロパティ>レイアウト"を開くだけで、バッファサイズ+ウィンドウサイズを増やします。

enter image description here

0
Edmund Sulzanok