次の方法で共有


Where-Object

どのオブジェクトがコマンド パイプラインを使用して渡されるかを制御するフィルターを作成します。

構文

Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]

説明

Where-Object コマンドレットは、渡されたオブジェクトのセットからオブジェクトを選択します。このコマンドレットは、スクリプト ブロックをフィルターとして使用し、各オブジェクトのスクリプト ブロックを評価します。評価の結果が True の場合、オブジェクトが返されます。評価の結果が True でない場合、オブジェクトは無視されます。

パラメーター

-FilterScript <scriptblock>

オブジェクトのフィルターに使用するスクリプト ブロックを指定します。スクリプト ブロックは中かっこ ( {} ) で囲みます。

必須

true

位置

1

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-InputObject <psobject>

フィルター処理するオブジェクトを指定します。パイプを使用してオブジェクトを Where-Object に渡すこともできます。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByValue)

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.Management.Automation.PSObject

パイプを使用して、フィルターするオブジェクトを Where-Object に渡すことができます。

出力

例 1

C:\PS>get-service | where-object {$_.Status -eq "Stopped"}

説明
-----------
このコマンドは、現在停止しているすべてのサービスの一覧を取得します。"$" シンボルは、Where-Object コマンドレットに渡された各オブジェクトを表します。





例 2

C:\PS>get-process | where-object {$_.workingset -gt 25000*1024}

説明
-----------
このコマンドは、ワーキング セットが 25,000 KB より大きいプロセスを一覧表示します。WorkingSet プロパティの値はバイト単位で格納されるため、25,000 の値に 1,024 を乗算します。





例 3

C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" }

説明
-----------
このコマンドは、文字 "p" で始まる ProcessName プロパティを持つプロセスを取得します。match 演算子を使用すると、Where 句内で正規表現を使用できます。





例 4

C:\PS>get-process -name svchost | where-object {$True}

説明
-----------
このコマンドは、"svchost" という名前のプロセスをすべて一覧表示します。

Where-Object コマンドレットはスクリプト ブロックを評価します。このスクリプト ブロックには、現在パイプラインにあるオブジェクトへの参照 ($_) が通常含まれており、where-object コマンドレットは評価の結果をブール型 (True または False) にキャストします。結果が True の場合、オブジェクトが返されます。それ以外の場合は、破棄されます。

ここでは、スクリプト ブロックはそのまま True を返すため、すべてのオブジェクトが返されます。