PowerShellの中身
UNIXユーザーが、PowerShellを使う時には、PowerShellがUNIXの発想を取り入れた別のユーザーインターフェイスとツール群であることを覚えておく必要がある。たとえば grep に対応するコマンドレットが select-string であるので、「プロセス番号が4のプロセス名を調べる」ことを使用とするとこんな風に入力するんじゃなかろーか*1。
PS C:\> Get-Process | select-string 4 PS C:\>
何もでてこない。この理由は、オブジェクトの配列を select-string して引っかけようとするとき、プロセス名しか引っかからないから*2。だから、プロセス名を引っかけたいなら OK 。
PS C:> Get-Process | select-string xy System.Diagnostics.Process (McProxy) System.Diagnostics.Process (xyzzy)
プロセスを表す上のオブジェクトからidを使ってフィルタリングするには
PS> Get-Process -id 4
とするか、
PS> PS C:\> Get-Process | where-object {$_.id -eq 4 } Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 1521 0 0 272 2 14.14 4 System
とすればいい。後者の方が、フィルタ、という発想からはマッチにしてるように見えるやね。