雑記+備忘録

OS中心の技術情報と趣味について(最近は主に将棋)。備忘録なのでここに書かれたことを試すのは自己責任でお願いします。

PowerShellで表示が切れるのを防ぐ

PowerShellで表示が切れるのを防ぐ

PowerShellでコンソール上に値を表示させたり、テキストとして出力させたりするときに、 一定の長さで表示が切れて「...」となってしまうのを防ぎたい。

長く不便に感じていたにも関わらず全然情報を見つけられなかったのですが、 別件の調べものをしていた際に偶然発見しました。

こちらのブログに情報がありました。(ありがとうございます) http://cncn-us.hatenablog.com/entry/2016/10/18/175657

たとえば

PS > Get-EventLog Application -Newest 1

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
    4981 12 13 22:30   Warning     EventSystem            2147488002 ソース 'EventSystem' のイベント ID '-2147479294' の説明が...

となり、「Message」が全て表示されません。 これはOut-Fileでテキストに表示させても同じで(改善される場合もある)、 「Export-Csv」を使ってcsvファイルに出力することで、何とか回避していました。

「...」にせずに全て表示させるにはこのようにします。

PS > Get-EventLog Application -Newest 1 | Format-Table -AutoSize -Wrap

Index Time        EntryType Source      InstanceID Message
----- ----        --------- ------      ---------- -------
 4981 12 13 22:30 Warning   EventSystem 2147488002 ソース 'EventSystem' のイベント ID '-2147479294' の説明が見つかりません。必要
                                                   なレジストリ情報またはメッセージを表示するメッセージ DLL ファイルがローカル コ
                                                   ンピューターに存在しない可能性があります。または、これらのデータへのアクセス許
                                                   可がユーザーに与えられていない可能性があります。次の情報はイベントの一部です:'
                                                   80010105', 'ConnectionMade', '{D5978620-5B9F-11D1-8DD2-00AA004ABD5E}', '', '',
                                                    'ConnectionMade', ''

上記参考にさせていただいたブログでは「-Wrap」オプションを使わず、「| Out-String -Width 4096」としていました。 もちろんそれでもOKです。「-Wrap」オプションは、長い場合にその項目の欄に改行して表示してくれるオプションです。

PS > Get-EventLog Application -Newest 1 | Format-Table -AutoSize | Out-String -Width 4096

Index Time        EntryType Source      InstanceID Message                                                                                                                                                                                                          
----- ----        --------- ------      ---------- -------                                                                                                                                                                                                          
 4981 12 13 22:30 Warning   EventSystem 2147488002 ソース 'EventSystem' のイベント ID '-2147479294' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DLL ファイルがローカル コンピューターに存在しない可能性があります。または、これらのデータへのアクセス許可がユーザーに与えられていない可能性があります。次の情報はイベントの一部です:'80010105', 'ConnectionMade', '{D5978620-5B9F-11D1-8DD2-00AA004ABD5E}', '', '', 'ConnectionMade', ''