次の方法で共有


LIKE 演算子

LIKE 演算子は、文字列が指定されたパターンと一致するかどうかを判断します。 指定したパターンには、一致する文字を正確に含めることができます。または、メタ文字を含めることができます。 実際には、LIKE 演算子は、次の表のワイルドカード文字を使用して部分文字列と一致します。

文字 形容
[ ] 指定した範囲内の任意の 1 文字 ([a から f]) または set ([abcdef])。
^ 範囲 ([^a-f]) または set ([^abcdef]) 内にない任意の 1 文字。
% 0 (ゼロ) 以上の任意の文字列。 次の例では、クラス名の任意の場所で "Win" が見つかったすべてのインスタンスを検索します。SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (アンダースコア) 任意の 1 文字。 クエリ文字列で使用されるリテラル アンダースコアは、[] (角かっこ) 内に配置してエスケープする必要があります。

 

たとえば、次の Power Shell コードは、Name プロパティが FirstName で始まる Win32_operatingSystem クラスのすべてのインスタンス取得します。

Get-WmiObject win32_computerSystem -filter "Name LIKE 'FirstName%'"

アンダースコアはメタ文字であるため、クエリ ターゲットにアンダースコアがある場合は、"[]" エスケープ文字で囲む必要があります。 たとえば、名前に二重アンダースコアが付いているすべてのクラスを照会できます。

名前に二重アンダースコアが付いているすべてのクラスを検索するには、次のように、両方のアンダースコアを [] (角かっこ) でエスケープする必要があります。

SELECT * FROM meta_class WHERE __CLASS LIKE "%[_][_]%"

NOT を使用して LIKE ステートメントを否定できます。これを行うには、フィールド名の前に NOT を直接配置してください。 例えば:

Get-WmiObject -computerName "." -query 'Select * FROM Win32_Printer WHERE Local="TRUE" AND Network ="False" AND DriverName LIKE "%HP%" AND NOT PortName LIKE "%10.%" AND NOT PortName LIKE "%\\%"'

WQL 演算子の