Delen via


LIKE-operator

De operator LIKE bepaalt of een tekenreeks wel of niet overeenkomt met een opgegeven patroon. Het opgegeven patroon kan exact de tekens bevatten die overeenkomen, of kan metatekens bevatten. De LIKE-operator komt in feite overeen met subtekenreeksen met behulp van de jokertekens in de volgende tabel.

Karakter Beschrijving
[ ] Elk teken binnen het opgegeven bereik ([a-f]) of set ([abcdef]).
^ Eén teken dat zich niet binnen het bereik bevindt ([^a-f]) of een set ([^abcdef].)
% Een tekenreeks van 0 (nul) of meer tekens. In het volgende voorbeeld worden alle exemplaren gevonden waarbij Win overal in de klassenaam wordt gevonden: SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (onderstrepingsteken) Elk teken. Elke letterlijke onderstrepingsteken die in de querytekenreeks wordt gebruikt, moet worden ontsnapt door deze binnen [] (vierkante haken) te plaatsen.

 

Met de volgende Power Shell-code worden bijvoorbeeld alle exemplaren van de klasse Win32_operatingSystem opgehaald waarvan de eigenschap Name begint met FirstName:

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

Omdat het onderstrepingsteken een metateken is, moeten de escapetekens [] als het querydoel een onderstrepingsteken heeft, deze omsluiten. U kunt bijvoorbeeld een query uitvoeren voor alle klassen met een dubbel onderstrepingsteken in de naam.

Als u alle klassen met een dubbel onderstrepingsteken in de naam wilt zoeken, moet u beide onderstrepingstekens met [] (vierkante haken) escapen, bijvoorbeeld:

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

U kunt een LIKE-instructie negateen met NOT; Om dit te doen, moet u ervoor zorgen dat u de NOT direct vóór de veldnaam plaatst. Bijvoorbeeld:

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