Поделиться через


Оператор LIKE

Оператор LIKE определяет, соответствует ли строка символов указанному шаблону. Указанный шаблон может содержать именно соответствующие символы или содержать мета-символы. В действительности оператор LIKE соответствует подстрокам, используя подстановочные знаки в следующей таблице.

Характер Описание
[ ] Любой символ в указанном диапазоне ([a-f]) или set ([abcdef]).
^ Любой символ не в диапазоне ([^a-f]) или set ([^abcdef].)
% Любая строка 0 (ноль) или более символов. В следующем примере обнаруживаются все экземпляры, где находится "Win" в любом месте имени класса: SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (подчеркивание) Любой символ. Любой литеральный символ подчеркивания, используемый в строке запроса, должен быть экранирован путем размещения его внутри [] (квадратные скобки).

 

Например, следующий код Power Shell извлекает все экземпляры класса Win32_operatingSystem, свойство которого Name начинается с FirstName:

Get-WmiObject win32_computerSystem -filter "Name LIKE 'FirstName%'"

Поскольку символ подчеркивания является мета символом, если целевой объект запроса имеет символ подчеркивания, экранные символы "[]" должны окружать его. Например, можно запросить все классы с двойным подчеркиванием в имени.

Чтобы найти все классы с двойным подчеркиванием в имени, необходимо экранировать оба символа подчеркивания с [] (квадратные скобки), например:

SELECT * FROM meta_class WHERE __CLASS LIKE "%[_][_]%"

Вы можете отменить инструкцию LIKE с помощью NOT; Чтобы сделать это, обязательно поместите 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