LIKE 运算符确定字符串是否与指定的模式匹配。 指定的模式可以完全包含要匹配的字符,也可以包含元字符。 实际上,LIKE 运算符使用下表中的通配符匹配子字符串。
字符 | 描述 |
---|---|
[ ] | 指定范围内的任何一个字符([a-f])或集([abcdef])。 |
^ | 不在范围内的任何一个字符([^a-f])或设置([^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 "%\\%"'
相关主题