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 metacaracteres. Na verdade, o operador LIKE corresponde a substrings que usam os caracteres curinga na tabela a seguir.
Caractere | Descrição |
---|---|
[ ] | Qualquer caractere no intervalo ([a-f]) ou conjunto ([abcdef]) especificado. |
^ | Qualquer caractere fora do intervalo ([^a-f]) ou conjunto ([^abcdef].) |
% | Qualquer cadeia 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 caractere. Qualquer sublinhado literal usado na cadeia de caracteres de consulta deve ser escapado colocando-o dentro de [] (colchetes). |
Por exemplo, o código do Power Shell a seguir 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 metacaractere, se o destino da consulta tiver um sublinhado, os caracteres de escape "[]" deverão cercá-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 instrução LIKE usando NOT. Para fazer isso, coloque NOT 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 "%\\%"'
Tópicos relacionados