wake-up-neo.com

So vergleichen Sie den Inhalt zweier Zeichenfolgenobjekte in PowerShell

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?

37
hax0r_n_code

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)

59
manojlds

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.

40
alroc