[powershell]powershellのバージョンによって、select-string でマッチ行が1行の場合に返ってくるオブジェクトのLengthプロパティ値が変わっている

超まとめ

select-stringが返すオブジェクトのLengthプロパティ値が、powershellのバージョンによって違います。

$match = select-string -Path <ファイル名> -Pattern <マッチパターン>

としたときの$match.Lengthは下記の様になっていました。

Powershellのバージョン $match.Length
2.0 $null
4.0 1
5.0 1

なお、select-stringでマッチする行が2行以上の場合は、どのバージョンでもLengthにはマッチした行数が設定されていました。

感想

v2.0@Win7で作っていたスクリプトをWin10で使ってみたらでなんか誤判定するからなんだろうと思って調べたところ、見つけました。
$null が返ってきていたのが仕様的におかしいって事で修正されたのかな?妥当な修正ではあるけど…

コメントを残す