LIKE 运算符

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 "%\\%"'

WQL 运算符