PowerShell 出力結果の改行を抑える
PowerShellで標準出力の結果、Write-Hostや、Write-Outputなどコンソールへ出力した結果が改行されることがあります。
コンソールの画面バッファの幅(サイズ)によって改行位置が異なってくるようです。
出力結果が画面バッファの幅(サイズ)の影響で、望ましくない位置で改行されてしまい困る場合は、コンソールの画面バッファの幅(サイズ)を広げてあげることで改行を抑えることができます。
コンソール画面の画面バッファの幅は、プロパティ-レイアウトから変更できます。
プロパティ画面では、幅は9999まで、高さも9999まで設定が可能です。(Win7sp1)
スクリプトからは以下のように変更が可能です。この場合はその時開いているコンソールやそのスクリプト実行時のみ有効となります。
$pshost = get-host
$pswindow = $pshost.ui.rawui
$newsize = $pswindow.buffersize
$newsize.Height = 9999
$newsize.Width = 9999
$pswindow.buffersize = $newsize
出力結果の改行を確認するサンプルコードは以下
# 標準出力など出力結果が画面(バッファ)の幅で改行されてしまうのでそのための対応として画面バッファの幅を広げる
$pshost = get-host
$pswindow = $pshost.ui.rawui
$newsize = $pswindow.buffersize
$newsize.Height = 9999
$newsize.Width = 9999 # この値を変えてみて出力結果の改行を確認...
$pswindow.buffersize = $newsize
Write-Host 'height = ' $pswindow.buffersize.Height
Write-Host 'width = ' $pswindow.buffersize.Width
Write-Output 'height = ' $pswindow.buffersize.Height
Write-Output 'width = ' $pswindow.buffersize.Width
$str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
Write-Host '$str = '$str.Length
Write-Output ""
$str
Write-Output ""
Write-Host $str
Write-Output ""
Write-Output $str
0コメント