2011年6月22日水曜日

◆文字列に変換して検索

あるプロセスが起動されているか判定する。

001
002
003
004

( Get-Process | select name ) -contains "explorer" #false
( Get-Process | %{$_.name} ) -contains "explorer"  #true
( Get-Process | select -ExpandProperty name ) -contains "explorer" #true
( Get-Process | Out-String -Stream ) | Select-String "explorer" -Quiet #true

1行目の様に書いてしまうとcontains演算子の左辺はプロセスオブジェクトなのでFalseになってしまう。

そこで、文字列に変換して判定する。
単純に変換すると2行目のような感じかな。

3行目はExpandPropertyを使っている。
通常こいつはプロパティを展開するときに使うが、副作用?としてプロパティを文字列で返してくれるようだ。

4行目の様に、纏めて文字列にして純粋に検索するというのも有りかと。

0 件のコメント:

コメントを投稿