「1行あたりの文字数が80文字より多いソースコードの行を見つける」ということを実現するためのスクリプトです。
Get-ChildItem -Filter "*.cpp" -Recurse | ForEach-Object { $filename = $_.Name; Get-Content $_.FullName | ForEach-Object { $i = 0 } { $i++; [PSCustomObject] @{ filename = $filename; location = $i; length = $_.Length} } } | Where-Object { $_.length -gt 80 } | Sort-Object -Property lengthGet-ChildItem -Filter "*.cpp" -Recurse | ForEach-Object { $filename = $_.Name; Get-Content $_.FullName | ForEach-Object { $i = 0 } { $i++; [PSCustomObject] @{ filename = $filename; location = $i; length = $_.Length} } } | Where-Object { $_.length -gt 80 }| Sort-Object -Property length- 文字列として数えているので、タブ文字は1文字です。
- ファイルのエンコーディングの扱いは手を抜いてます。決まっているのであれば
Get-Contentの引数に-Encodingをつければいいでしょう。