h41msh1c0r
Goto Top

Powershell Vergleichsoperatoren

Hi@PS Profis,

if ($_.name -notmatch "Entry")  
{

}

Das obrige Konstrukt läuft immer auf true auch wenn $_.name "Entry" und das ausgelesene XML Element " <Entry Name="Pfad1">P:\Temp</Entry>" war.

-notlike, -notcontains auch probiert, gleiches Ergebnis.
Mit Wildcards hat das auch noch nicht funktioniert.

<Entry Name="Pfad1">P:\Temp</Entry>  
<Entry Name="Pfad2">P:\Temp2</Entry>  
<Entry> TestEntry1</Entry>      

Gibt es bei den Wildcards noch was zu beachten?

Gruß vom H41mS1C0r

Content-ID: 291168

Url: https://administrator.de/forum/powershell-vergleichsoperatoren-291168.html

Ausgedruckt am: 16.04.2025 um 15:04 Uhr

114757
114757 17.12.2015 aktualisiert um 16:44:27 Uhr
Goto Top
Moin,
-match und -notmatch machen Vergleiche mit Regular Expression Syntax ! D.h. das dort Sonderzeichen wie . + * ? \ { } ( ) [ ] etc. pp besondere Bedeutung haben
Regular Expressions Tutorial

Hier gelten also keine normalen Wildcards sondern eben die RegEx Syntax. Nur die Like-Operatoren arbeiten hier mit den allgemein gültigen Wildcards wie *

Ein simples Entry als RegEx Pattern bedeutet finde den String Entry egal wo im String. Möchtest du mit -match z.B. erreichen das ein String komplett von Anfang bis Ende gematched wird sieht der RegEx Pattern so aus ^Entry$.

Regular Expressions hier jetzt im Detail zu erklären würde den Rahmen hier absolut sprengen, also ließ dir dazu das oben verlinkte RegEx Tutorial durch.

Liest du auch in der Doku zu den Vergleichsoperatoren.
-Match 
      Description: Matches a string using regular expressions. 
                   When the input is scalar, it populates the
                   $Matches automatic variable. 

Gruß jodel32
H41mSh1C0R
H41mSh1C0R 17.12.2015 um 17:07:06 Uhr
Goto Top
Hallo Jodel,

danke für den kleinen Exkurs und die Links.

Gruß