パイプラインを使用したファイル一覧表示
パイプラインを利用することで、条件による絞り込みや必要項目のみの表示などが可能となります。
ここからは、パイプラインを利用した例を見ていきます。
必要な項目のみを表示する
Select-Objectコマンドレットを使用すると、必要な項目のみを表示することが可能となります。Select-Objectの使用方法についてはWindows PowerShell入門(2)を参照ください。
表示される順番は、Select-Objectコマンドレットに指定した順番となるので、下記の場合はName, Length, Extesionの順に表示されます。
PS> Get-ChildItem | Select-Object Name, Length, Extension

並べ替えて表示する
Sort-Objectコマンドレットを使用すると、指定した項目での並べ替えが可能となります。Sort-Objectの使用方法についてはWindows PowerShell入門(2)を参照ください。
ファイルの一覧でよく使用されるのは、ファイル名順、サイズ順、作成日時順などです。
PS> Get-ChildItem C:\Work | Sort-Object Name

PS> Get-ChildItem C:\Work | Sort-Object Length

PS> Get-ChildItem C:\Work | Sort-Object CreationTime

ここまでの例は昇順による並べ替えです。降順に並べ替えるにはSort-Objectコマンドレットに-Descendingスイッチパラメータを使用します。
PS> Get-ChildItem C:\Work | Sort-Object Name -Descending

条件に合致したリストを表示する
Where-Object コマンドレットを使用すると条件に合致するデータのみを表示することができます。Where-Objectの使用方法についてはWindows PowerShell入門(2)を参照ください。
条件の指定には主に比較演算子を使用します(比較演算子以外も使用できます)。比較演算子についてはWindows PowerShell 入門(4)を参照ください。
下記は、ファイルの最終更新日時($_.LastWriteTime)が2008/12/01以降のものだけを表示します。-geが以降を意味します。
PS> Get-ChildItem C:\Work | Where-Object { $_.LastWriteTime -ge [DateTime]"2008/12/01" }

拡張子別にファイル数をカウントする
Group-Objectコマンドレットを使用すると、指定した項目でのグルーピングが可能となります。Group-Objectの使用方法についてはWindows PowerShell入門(2)を参照ください。
これを利用して拡張子別にファイル数をカウントすることができます。
PS> Get-ChildItem C:\Work | Group-Object Extension

まとめ
今回は、活用編の第1ステップとしてファイルのリスト表示方法を中心に説明しました。ファイルのリスト表示と言っても、パラメータを使用したり、パイプラインを使用したりすることで様々な取得方法があることをお分かりいただけたかと思います。
日常業務の中で、特定のファイル数のカウントや、指定日以降に作成されたファイルを知りたいということは良くあることです。
今回紹介した方法はほんの一部にしか過ぎませんが基本となるパターンを紹介しました。是非、これらを身につけスクリプト開発や日常の業務で活用していただければ幸いです。
次回も引き続きファイル操作について説明したいと思います。お楽しみに。
