Partilhar via


Operador LIKE

O operador LIKE determina se uma cadeia de caracteres corresponde ou não a um padrão especificado. O padrão especificado pode conter exatamente os caracteres a serem correspondidos ou pode conter metacaracteres. Na verdade, o operador LIKE corresponde a substrings usando os caracteres curinga na tabela a seguir.

Personagem Descrição
[ ] Qualquer caractere dentro do intervalo especificado ([a-f]) ou definido ([abcdef]).
^ Qualquer caractere que não esteja dentro do intervalo ([^a-f]) ou definido ([^abcdef].)
% Qualquer cadeia de caracteres de 0 (zero) ou mais caracteres. O exemplo a seguir localiza todas as instâncias em que "Win" é encontrado em qualquer lugar no nome da classe: SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (sublinhado) Qualquer personagem. Qualquer sublinhado literal usado na cadeia de caracteres de consulta deve ser escapado colocando-o dentro de [] (colchetes).

 

Por exemplo, o seguinte código do Power shell recupera todas as instâncias da classe Win32_operatingSystem cuja propriedade Name começa com FirstName:

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

Como o sublinhado é um caractere meta, se o destino da consulta tiver um sublinhado, os caracteres de escape "[]" deverão rodeá-lo. Por exemplo, você pode consultar todas as classes que têm um sublinhado duplo no nome.

Para localizar todas as classes com um sublinhado duplo no nome, você deve escapar de ambos os sublinhados com [] (colchetes), por exemplo:

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

Você pode negar uma declaração LIKE usando NOT; para fazer isso, certifique-se de colocar o NÃO diretamente na frente do nome do campo. Por exemplo:

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

Operadores WQL