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 "%\\%"'
相關主題