Compartir a través de


Operador LIKE

El operador LIKE determina si una cadena de caracteres coincide o no con un patrón especificado. El patrón especificado puede contener exactamente los caracteres que deben coincidir o puede contener metadatos. En efecto, el operador LIKE coincide con subcadenas mediante los caracteres comodín de esta tabla.

Carácter Descripción
[ ] Cualquier carácter individual del intervalo ([a-f]) o del conjunto ([abcdef]) que se ha especificado.
^ Cualquier carácter individual que no sea del intervalo ([^a-f]) o del conjunto ([^abcdef]) que se ha especificado.
% Cualquier cadena de 0 (cero) o más caracteres. En el ejemplo siguiente se buscan todas las instancias en las que "Win" se encuentra en cualquier posición del nombre de clase: SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (carácter de subrayado) Cualquier carácter. Cualquier carácter de subrayado literal que se use en la cadena de consulta debe ser de escape; para ello, va entre [] (corchetes).

 

Por ejemplo, este código de Power Shell recupera todas las instancias de la clase Win32_operatingSystem cuya propiedad Name comienza por FirstName:

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

Como el carácter de subrayado es un carácter meta, si el destino de la consulta tiene un carácter de subrayado, los caracteres de escape "[]" deben rodearlo. Por ejemplo, puede consultar todas las clases que tienen un carácter de subrayado doble en el nombre.

Para buscar todas las clases con un carácter de subrayado doble en el nombre, debe poner de escape ambos caracteres de subrayado con [] (corchetes), por ejemplo:

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

Puede negar una instrucción LIKE con NOT; para ello, asegúrese de colocar NOT directamente delante del nombre del campo. Por ejemplo:

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