Freigeben über


LIKE-Operator

Der LIKE-Operator bestimmt, ob eine Zeichenfolge einem angegebenen Muster entspricht. Das angegebene Muster kann genau die übereinstimmenden Zeichen enthalten, oder es kann Metazeichen enthalten. Tatsächlich gleicht der LIKE-Operator Teilzeichenfolgen mit den Wildcardzeichen in der folgenden Tabelle ab.

Zeichen Beschreibung
[ ] Ein beliebiges Zeichen innerhalb des angegebenen Bereichs ([a-f]) oder satz ([abcdef]).
^ Ein Zeichen, das sich nicht innerhalb des Bereichs befindet ([^a-f]) oder satz ([^abcdef].)
% Eine beliebige Zeichenfolge von 0 (Null) oder mehr Zeichen. Im folgenden Beispiel werden alle Instanzen gefunden, in denen "Win" an einer beliebigen Stelle im Klassennamen gefunden wird: SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (Unterstrich) Ein beliebiges Zeichen. Jeder Literal unterstrich, der in der Abfragezeichenfolge verwendet wird, muss durch Platzieren in [] (eckige Klammern) escapet werden.

 

Der folgende Power Shell-Code ruft beispielsweise alle Instanzen der Win32_operatingSystem Klasse ab, deren Name-Eigenschaft mit FirstName-beginnt:

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

Da es sich bei dem Unterstrich um ein Metazeichen handelt, müssen die Escapezeichen "[]" sie umgeben, wenn das Abfrageziel einen Unterstrich aufweist. Sie können z. B. nach allen Klassen abfragen, die einen doppelten Unterstrich im Namen enthalten.

Wenn Sie alle Klassen mit einem doppelten Unterstrich im Namen suchen möchten, müssen Sie beide Unterstriche mit [] (eckige Klammern) escapen, z. B.:

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

Sie können eine LIKE-Anweisung mit NOT negieren; Stellen Sie dazu sicher, dass Sie die NOT direkt vor dem Feldnamen platzieren. Zum Beispiel:

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