In PowerShell gibt es ein Array von Zeichenfolgenobjekten und ein Objekt, das Zeichenfolgenobjekte enthält. In Java) können Sie mit .equals(aObject)
prüfen, ob die Zeichenfolgenwerte übereinstimmen, während Sie mit ==
Prüfen, ob sich die beiden Objekte auf dieselbe Position in beziehen Erinnerung.
Wie führe ich ein äquivalentes .equals(aObject)
in Powershell aus?
Ich mache das:
$arrayOfStrings[0].Title -matches $myObject.item(0).Title
Diese beiden haben genau dieselben Zeichenfolgenwerte, aber ich erhalte den Rückgabewert false. Irgendwelche Vorschläge?
Du willst $arrayOfString[0].Title -eq $myPbiject.item(0).Title
machen
-match
ist für den regulären Ausdruck (das zweite Argument ist ein regulärer Ausdruck)
Sie können dies auf zwei verschiedene Arten tun.
Option 1: Der Operator -eq
>$a = "is"
>$b = "fission"
>$c = "is"
>$a -eq $c
True
>$a -eq $b
False
Option 2: Die Methode .Equals()
des Objekts string
. Da Strings in PowerShell .NET-Objekte System.String
Sind, kann jede Methode dieses Objekts direkt aufgerufen werden.
>$a.equals($b)
False
>$a.equals($c)
True
>$a|get-member -membertype method
Es folgt eine Liste der System.String
- Methoden.