Share via


LIKE 運算子

LIKE 運算子會判斷字元字串是否符合指定的模式。 指定的模式可以完全包含要比對的字元,也可以包含中繼字元。 實際上,LIKE 運算子會使用下表中的萬用字元比對子字串。

字元 描述
[ ] 指定範圍內的任何一個字元 ([a-f]) 或設定 ([abcdef]) 。
^ 不在範圍中的任何一個字元 ([^a-f]) 或設定 ([^abcdef].)
% 任何 0 個字串 (零) 或多個字元。 下列範例會尋找類別名稱中任何位置找到 「Win」 的所有實例: SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (底線) 任何一個字元。 查詢字串中使用的任何常值底線都必須將其放在 [] (方括弧) 來逸出。

 

例如,下列 Power Shell 程式碼會擷取名稱屬性開頭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 運算子