Haben Sie Probleme mit dem Verständnis von PowerShell-Vergleichsoperatoren wie eq, ne, ceq und cne. Wenn ja, Lesen Sie weiter.

Aus einem Softwareentwicklungshintergrund Die erste Instanz hatte ich ein “ Huh?“moment war, als ich zum ersten mal PowerShell-Vergleichsoperatoren eq, ceq, cne usw., Alle anderen Sprachen haben Vergleichsoperatoren aber nicht ganz wie PowerShell. Ich war an == und <>gewöhnt.

Die Syntax sieht nicht nur völlig anders aus als Ihre typische Programmiersprache, sondern verhält sich auch beim Vergleich von Wertesammlungen anders.

Es ist etwas, das mich beim Lernen über PowerShell wirklich aufgehängt hat, aber jetzt scheint es wie das alte Bier-Sprichwort; es ist ein erworbener Geschmack.,

Lassen Sie uns kurz durchgehen, was ein Vergleichsoperator ist, wenn Sie nicht vertraut sind und tiefer in die Nuancen eintauchen, die PowerShell einführt. In Kürze können Sie Operatoren problemlos in Ihren PowerShell-Skripten verwenden.

Wie bereits erwähnt, haben alle Programmier – /Skriptsprachen Vergleichsoperatoren. In ihrem grundlegendsten Sinne sind Vergleichsoperatoren notwendig, um zu bewerten, wie verschiedene Dinge mit anderen Dingen verglichen werden. Sie werden verwendet, um zwei Objekte zu nehmen und zu sehen, was der Unterschied (falls vorhanden) zwischen diesen beiden Objekten ist.,

Im Fall von PowerShell können Operatoren auch verwendet werden, um Elemente in Wertesammlungen zu finden.

Für diesen Beitrag werde ich über die Gleichheitsoperatoren gehen und wie PowerShell sie verwendet. Dies sind eq und ne mit ihren Groß-und Kleinschreibung ceq und cne. Für eine vollständige Liste können Sie über die Technet-Site springen oder einfach Get-Help about_comparison_operatorsin Ihrer Powershell-Konsole verwenden.,

PowerShell-EQ und-CEQ

Wenn Sie jemals sehen müssen, ob ein Objekt einem anderen Objekt entspricht, müssen Sie die Operatoren eq (Groß-und Kleinschreibung) oder ceq (Groß-und Kleinschreibung) verwenden. Diese Operatoren testen den Wert jeder Entität, mit der Sie vergleichen möchten.

Als ich anfing, PowerShell zu lernen, würde ich ständig so etwas tun

$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}

Sie werden bald genug geschlagen sein, um das nicht zu tun. Das Zeichen = ist ein Zuweisungsoperator, KEIN Vergleichsoperator., Sie können das Zeichen = nicht verwenden, um einen Wert mit einem anderen zu vergleichen.

Der richtige Weg, dies zu tun, besteht darin, den Wert zu definieren, der auf der linken Seite des Ausdrucks überprüft werden soll, und den Operator eq zu verwenden. Hier ist ein Beispiel für die Operatoren eq und ceq und wie sie verwendet werden.,

PowerShell’s eq vs ceq

Notice how eq returned a boolean True value when comparing our variable against adam but ceq returned a boolean False value? This displays the case sensitivity difference between the two operators.,

Dies ist alles gut und gut für skalare (einzelne) Werte, aber Sie können auch alle Instanzen bestimmter Werte mit diesen Operatoren finden. Verwenden Sie beispielsweise den PowerShell-eq-Operator, um Elemente in einem Array zu filtern:

Verwenden von Eq zum Suchen von Arrays

Wenn Sie eine Variable mit einer Sammlung von Werten wie einem Array haben, können Sie eq und ceq, um alle Instanzen von Werten in der Sammlung zu finden.,

Beachten Sie, dass alle Instanzen der Ganzzahl 9 gefunden wurden, mit der wir versucht haben, sie zu vergleichen. Ich benutze diese praktische Methode die ganze Zeit.

– NE und-CNE

Auf der gegenüberliegenden Seite haben Sie beide ne und cne. Sie sind genau das Gegenteil von eq und ceq, zeigen jedoch genau dasselbe Verhalten nur gegenüber. Sie testen nicht Gleichheit, sie testen Ungleichheit.

PowerShells ne vs., cne

Ich hoffe, dies gibt eine gute Erklärung für die Gleichheitsvergleichsoperatoren. Das hat mich wirklich als Neuling aufgehängt und es hat nie wirklich für mich geklickt, bis ich nur durch Fehlermeldungen in die Einreichung geschlagen wurde. Ich hoffe, dieser Beitrag verhindert den gleichen Schlag, den ich erhalten habe.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.