コマンドラインでコマンドを実行すると、長い出力が出てしまうことが多い。この問題は、コンピューターがまだ機械式端末装置などで印字出力をしていたときからの問題なので、さまざまな解決策が用意されている。今回はその対策を解説する。
まずは基本的となる対策
MS-DOS時代からの対策は、more.comコマンドである。more.comは、画面1面分の出力をすると、そこで出力を停止して、キー入力待ちとなる。Unix/Linux系では、その発展型となるlessコマンドもあり、逆方向にスクロールさせることも可能だ。
more.comは、cmd.exeでもPowerShellでも利用できる。どちらも「C:\Windows\System32\more.com」が呼び出される。「.com」を省略してmoreとすることも可能だ。
dir | more
のようにコマンド出力をパイプ記号でmoreコマンドに送り込めばよい。
Unix/Linuxには、head/tailコマンドが用意されている。これらは、先頭のn行/末尾のn行のみを出力するコマンドである。多くのコマンド出力は、一部分、特に先頭や末尾の行だけで十分なことがある。たとえば、コマンドがどんな出力をしているのかを知りたいときなどだ。
Unix/Linuxのhead、tailコマンドは、オプションなしでは、先頭の10行、末尾の10行を出力できる。
ls | head #先頭の10行を出力
ls | tail #末尾の10行を出力
同じ機能は、PowerShellおよびWindows PowerShell(以下、2つを合わせてPowerShell)のSelect-Objectコマンドでもできる。
dir | Select-Object -First 10 #先頭の10行を出力
dir | Select-Object -Last 10 #末尾の10行を出力
コマンドの出力が何行あるのかは、Unix/Linuxならばwcコマンド、PowerShellならばMeasure-Objectコマンドで調べられる。それぞれオプションを付けることで、行数のみを表示できる。
dir | Measure-Object -Line #PowerShell
ls | wc -l #Unix/Linux
PowerShellの場合、利用頻度の高いオブジェクトには「既定のビュー」という自動書式設定があり簡略表示がなされていることには注意したい。
たとえば、dirコマンド(get-childitemのエイリアス)の場合、コンソールで出力するとMode、LastWriteTime、Length、Nameという4つのプロパティしか表示されない。しかし、「dir ファイル」は、System.IO.FileInfoというオブジェクトを出力しており、そこには多数のプロパティがある。これは、System.IO.FileInfoに対して、既定のビューと呼ばれる自動書式が設定されているからだ。
しかし、上記のようにdirコマンドの出力をパイプで渡すと、System.IO.FileInfoオブジェクトが Measure-Objectに渡り、画面で見ているような出力は渡されない。このために、Measure-Objectは、正しくファイルの数を数えることができる。
逆にmoreコマンドは、dirコマンドの画面出力と同じものを受け取る。このため、dirコマンドの表示出力そのままをページ表示できる。
PowerShellではコマンドの出力を「Out-Gridview」コマンドでGUIウィンドウに表示できる。このとき表示されるのもmoreと同じく既定のビューで書式設定されたオブジェクトになる。しかし、以下のようにSelect-Objectコマンドを挟むことで、すべてのプロパティを表示できる(記事冒頭画面)。
dir | Select-Object * | Out-Gridview
PowerShellでは、bashなどと異なり、コマンドはオブジェクトを出力する。どのようなオブジェクトが出ているのかは、Get-Memberコマンドで見ることができる。
dir | Get-Member
dirコマンドの場合、System.IO.FileInfoまたはSystem.IO.DirectoryInfoが出力される。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ












