PowerShell でファイルの行数をカウントする


PowerShell で指定のフォルダ以下のファイルの行数を簡単に取得することができます。

拡張子が .cs であるようなファイルのみを調べたい場合は次のようになります。

(Get-ChildItem X:\Path -Recurse -Filter *.cs | Where-Object { !$_.PSIsContainer } | Get-Content | Measure-Object).Count

エイリアスを利用して短く記述することもできます。

(dir X:\Path -Recurse -Filter *.cs | where { !$_.PSIsContainer } | gc | measure).Count

Where-ObjectPSIsContainer は, Get-ChildItem で取得したオブジェクトがフォルダの時に TRUE を返します。 ! で否定しているので,ファイルのみを取得します。ファイル名でフィルタをかけているのでほとんどの場合において不要だとは思いますが,念のための処理です。