PowerShell Enthält-Operator

PowerShell Enthält-Operator

Es gibt verschiedene Operatoren in PowerShell, die Elemente filtern/vergleichen oder finden können, die mit einem angegebenen Eingabestring übereinstimmen. Der -contains ist einer der wichtigsten Vergleichsoperatoren, der als Containment-Typ-Operator klassifiziert wird.

Es gibt vier Haupt-Containment-Typ-Operatoren.

  • -contains
  • -notcontains
  • -in
  • -notin

In diesem Artikel konzentrieren wir uns nur auf den -contains Operator. Dieser Operator gibt immer einen booleschen Wert (true/false) zurück, wenn es eine Übereinstimmung gibt. Auch in Bezug auf die Leistung ist der -contains Operator recht schnell, um die Ergebnisse zurückzugeben, da er den Vergleich der Eingabe stoppt, sobald er die erste Übereinstimmung findet.

der -contains Operator in PowerShell

Dieser Operator kann verwendet werden, um zu überprüfen, ob eine Sammlung ein bestimmtes Element enthält. Die Syntax lautet wie folgt.

[set / collection] -contains [test-value or test-object]

[set/collection] kann eine Menge von Zeichenfolgenwerten (durch Kommas getrennt) sein, zum Beispiel "Hello" oder "FOX", "2ndLane".

[test-value or test-object] kann ein Element oder eine Menge von Elementen (Sammlung) sein, zum Beispiel "Hello" oder "Hello", "FOX", "No2".

Überprüfen auf ein bestimmtes Element

  • Beispiel 01:
"Hello", "FOX", "2ndLane" -contains "2ndLane"

Ausgabe:

True

Das Eingabeelement/-wert ist "2ndLane" und kann in der Sammlung/Menge auf der linken Seite gefunden werden. Daher ist das Ergebnis offensichtlicherweise True.

  • Beispiel 02:
"Hello", "FOX", "2ndLane" -contains "NotInTheCollection"

Ausgabe:

False

Das Eingabeelement/-wert ist "NotInTheCollection" und es ist nicht in der Sammlung auf der rechten Seite enthalten. Daher wurde der oben genannte Befehl als False ausgewertet.

Die wichtige Tatsache über den -contains Operator ist, dass er das genaue Eingabeelement innerhalb der gegebenen Sammlung/Menge überprüft. Der Befehl wird als False ausgewertet, wenn ein Teil/Substring als Eingabeelement angegeben wird.

  • Beispiel 03:
"Hello", "FOX", "FullStringGiven" -contains "StringGiven"

Ausgabe:

False

Im obigen Beispiel ist das Eingabeelement das "StringGiven", aber es ist ein Substring des "FullStringGiven" Element der Sammlung auf der rechten Seite. Daher stimmt das Eingabeelement nicht mit einem genauen Element aus der Sammlung auf der rechten Seite überein, und das Ergebnis ist False, wie erwartet.

Überprüfen einer Menge von Elementen/Sammlung mit dem -contains Operator in PowerShell

Einer der größten Vorteile des -contains Operators ist, dass er verwendet werden kann, um zu prüfen, ob die gegebene Sammlung/Menge mit einer Eingabesammlung übereinstimmt. Es ist wichtig zu beachten, dass der Operator überprüft, ob die gleichen Instanzen auf der linken Seite (gegebene Sammlung) und der rechten Seite (Eingabesammlung/Test-Sammlung) existieren. Das bedeutet, dass diese Containment-Operatoren Referenzgleichheit verwenden, wenn das Eingabeobjekt (Testobjekt) eine Sammlung ist.

Beispiel 01

$leftsideobj = "Hello", "NewString1"

Hier weisen wir der Variablen $leftsideobj die Menge von Elementen (Sammlung) zu.

$leftsideobj, "AnotherString" -contains $leftsideobj

Dann verwenden wir den -contains Operator, um eine Übereinstimmung zu finden.

Ausgabe:

True

Dieser Befehl wurde als True ausgewertet. Denn die Eingabesammlung ist $leftsideobj und dieselbe Instanz ist in der Sammlung auf der linken Seite verfügbar. Das bedeutet, die Referenzgleichheit wurde erfüllt. Daher ist das Ergebnis True.

Beispiel 02

$newleftsideobj = "Hello", "Test"

Hier haben wir der Variablen $newleftsideobj eine Sammlung zugewiesen, die die Elemente "Hello" und "Test" enthält.

`"Hello", "Test", "NewString1" -contains $newleftsideobj`

Ausgabe:

False

Der oben genannte Befehl wurde als False ausgewertet. Sie können sehen, dass die Eingabesammlung (rechte Seite) $newleftsideobj ist, die indirekt die beiden Elemente "Hello" und "Test" repräsentiert. Wenn Sie die linke Seite betrachten, haben wir die Elemente "Hello" und "Test" zur Verfügung. Aber es erfüllt nicht die Referenzgleichheit. Deshalb ist die Ausgabe False.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - PowerShell Operator