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