Dela via


LIKE-operator

LIKE-operatorn avgör om en teckensträng matchar ett angivet mönster eller inte. Det angivna mönstret kan innehålla exakt de tecken som ska matchas eller innehålla metatecken. I själva verket matchar LIKE-operatorn delsträngar med jokertecken i följande tabell.

Karaktär Beskrivning
[ ] Ett tecken inom det angivna intervallet ([a-f]) eller ange ([abcdef]).
^ Ett tecken inom intervallet ([^a-f]) eller ange ([^abcdef].)
% Valfri sträng med 0 (noll) eller fler tecken. I följande exempel hittas alla instanser där "Win" finns någonstans i klassnamnet: SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (understreck) Ett tecken. Eventuella literalstreck som används i frågesträngen måste vara undantagna genom att placera det inuti [] (hakparenteser).

 

Följande Power Shell-kod hämtar till exempel alla instanser av klassen Win32_operatingSystem vars egenskap Name börjar med FirstName:

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

Eftersom understrecket är ett metatecken måste escape-tecknen omge det om frågemålet har ett understreck. Du kan till exempel fråga efter alla klasser som har ett dubbelt understreck i namnet.

Om du vill hitta alla klasser med ett dubbelt understreck i namnet måste du undvika båda understrecken med [] (hakparenteser), till exempel:

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

Du kan negera en LIKE-instruktion med HJÄLP av NOT; för att göra det, se till att placera INTE direkt framför fältnamnet. Till exempel:

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-operatorer