PowerShell を使ってるとたまに出力結果の文字数が多くて…のように文字が見切れてしまう時があります。すべて表示させるためにはいくつか対処法があると思いますが、自身がよく使っているものをまとめてみました。
PowerShell で文字が見切れる時の対処
PowerShell での文字切れ時の対処方法はいくつかあります。また、実行するコマンドによって対応しているものとしていないものがあるので、これを一発やっとけばいいというものはないようなので、実行するコマンドによって対応するものを利用する必要があるかと思います。
本記事で解説するのは以下の方法になります。
- Fomat-Table で Wrap を指定する
- FormatEnumerationLimit で表示アイテム数を変更する
それでは一つずつ説明していきます。
Format-Table で Wrap を指定する
1つ目は実行するコマンドに「Format-Table」と「-Wrap」を指定する方法になります。
Wrap パラメーターを使用することで、長い
Format-Table
データをその表示列内で強制的に折り返すことができます。引用:Technet
以下は、出力結果が省略されてしまうコマンドのサンプルになります。
サンプル1
PS C:\Users\Administrator> Get-WindowsFeature -Name ADLDS Display Name Name Install State ------------ ---- ------------- [ ] Active Directory ライトウェイト ディレクトリ サ... ADLDS Available PS C:\Users\Administrator>
このコマンドの場合、出力結果が「Active Directory ライトウェイト ディレクトリ サ…」と “…” で名前が省略されてしまいます。
この場合、以下のように実行するコマンドに対してパイプラインで「| ft -Wrap」を加えて実行します。
コマンド例
<コマンド> | ft -Wrap
コマンド実行例
PS C:\Users\Administrator> Get-WindowsFeature -Name ADLDS | ft -AutoSize -Wrap
Display Name Name Install State
------------ ---- -------------
[ ] Active Directory ライトウェイト ディレクトリ サービ ADLDS Available
ス
PS C:\Users\Administrator>
文字の見切れはなくなりますが、折り返されてしまいます。
Wrap を折り返さずに表示する (AutoSize の指定)
このような場合は、Format-Table へ「-AutoSize」も加えることにより折り返させずに表示させることもできます。
コマンド例
<コマンド> | ft -AutoSize -Wrap
コマンド実行例
PS C:\Users\Administrator> Get-WindowsFeature -Name ADLDS | ft -AutoSize -Wrap
Display Name Name Install State
------------ ---- -------------
[ ] Active Directory ライトウェイト ディレクトリ サービス ADLDS Available
PS C:\Users\Administrator>
このように文字の見切れがなくなり、全て表示されるようになります。
FormatEnumerationLimit で表示数を変更する
もうひとつは、「FormatEnumerationLimit」の設定になります。
これは出力できるアイテム数を定義している設定で、Exchange や Lync などでプロパティなどの出力コマンド利用時に文字が切れてしまときには、これで解決することができました。
デフォルトの設定では “4” となっています。設定の確認方法は以下となります。
コマンド実行例
PS C:\Users\Administrator> $FormatEnumerationLimit 4 PS C:\Users\Administrator>
以下は、出力結果が省略されてしまうコマンドのサンプルになります。
サンプル2
PS C:\Users\Administrator> Get-Service | Group-Object Count Name Group ----- ---- ----- 213 ADWS {ADWS, AJRouter, ALG, AppIDSvc...} PS C:\Users\Administrator>
出力結果が「{ADWS, AJRouter, ALG, AppIDSvc…}」と “…” で他のアイテムが省略されてしまっています。
※このコマンドに対して「| Format-Table -AutoSize -Wrap」を使っても改善しません。
その場合は、「$FormatEnumerationLimit = -1」を設定して、表示アイテム数の変更を行います。
※この設定は、PowerShell を閉じたらリセットされます。
コマンド例
$FormatEnumerationLimit = -1
コマンド実行例
PS C:\Users\Administrator> $FormatEnumerationLimit = -1 PS C:\Users\Administrator>
「$FormatEnumerationLimit = -1」へ変更が終わったら再度コマンドを実行します。
サンプル2
PS C:\Users\Administrator> Get-Service | Group-Object Count Name Group ----- ---- ----- 213 ADWS {ADWS, AJRouter, ALG, AppIDSvc, Appinfo, AppMgmt, AppReadiness, AppVClient, AppXSvc, AudioEndpointBuilder, Audiosrv PS C:\Users\Administrator>
このように表示されるアイテム数が変更され、出力アイテムが省略されなくました。