LIKE-Operator
Der LIKE-Operator bestimmt, ob eine Zeichenfolge mit einem angegebenen Muster übereinstimmt oder nicht. Das angegebene Muster kann genau die abzugleichenden Zeichen oder Metazeichen enthalten. Tatsächlich gleicht der LIKE-Operator Teilzeichenfolgen mithilfe der Platzhalterzeichen in der folgenden Tabelle ab.
Zeichen | BESCHREIBUNG |
---|---|
[ ] | Ein beliebiges Zeichen, das sich im angegebenen Bereich ([a-f]) oder in der angegebenen Menge ([abcdef]) befindet. |
^ | Ein beliebiges Zeichen, das sich nicht im angegebenen Bereich ([^a-f]) oder in der angegebenen Menge ([^abcdef]) befindet. |
% | Alle Zeichenfolgen mit 0 oder mehr Zeichen. Das folgende Beispiel findet alle Instanzen, in denen sich die Zeichenfolge „Win“ an einer beliebigen Stelle im Klassennamen befindet: SELECT * FROM meta_class WHERE __Class LIKE "%Win%" |
_ (Unterstrich) | Ein beliebiges Zeichen. Jeder literale Unterstrich, der in der Abfragezeichenfolge verwendet wird, muss mit Escapezeichen versehen werden, indem er in [] (eckige Klammern) platziert wird. |
Der folgende PowerShell-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 der Unterstrich ein Metazeichen ist, muss er mit eckigen Klammern ([]) als Escapezeichen umschlossen werden, wenn das Abfrageziel einen solchen enthält. Sie können beispielsweise alle Klassen abfragen, die einen doppelten Unterstrich im Namen enthalten.
Um alle Klassen mit einem doppelten Unterstrich im Namen zu finden, müssen Sie beide Unterstriche mit eckigen Klammern ([]) als Escapezeichen umschließen, z. B.:
SELECT * FROM meta_class WHERE __CLASS LIKE "%[_][_]%"
Sie können eine LIKE-Anweisung mit „NOT“ negieren. Stellen Sie dazu sicher, dass Sie „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 "%\\%"'
Zugehörige Themen