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-Key: 291168

Url: https://administrator.de/contentid/291168

Printed on: April 25, 2024 at 10:04 o'clock

Mitglied: 114757
114757 Dec 17, 2015 updated at 15:44:27 (UTC)
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
Member: H41mSh1C0R
H41mSh1C0R Dec 17, 2015 at 16:07:06 (UTC)
Goto Top
Hallo Jodel,

danke für den kleinen Exkurs und die Links.

Gruß