LIKE 運算元
LIKE 運算符會判斷字元字串是否符合指定的模式。 指定的模式可以完全包含要比對的字元,也可以包含中繼字元。 實際上,LIKE 運算符會使用下表中的通配符比對子字串。
字元 | 描述 |
---|---|
[ ] | 指定範圍內的任何一個字元([a-f]) 或 set ([abcdef])。 |
^ | 不在範圍內的任何一個字元([^a-f]) 或 set ([^abcdef].) |
% | 任何 0 (零) 或多個字元的字串。 下列範例會尋找類別名稱中任何位置找到 「Win」 的所有實例:SELECT * FROM meta_class WHERE __Class LIKE "%Win%" |
_ (底線) | 任何一個字元。 查詢字串中使用的任何常值底線,都必須將它放在 [] (方括號) 內以逸出。 |
例如,下列 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 "%\\%"'
相關主題