Die if/then-Konstruktion ist in PowerShell-Code weit verbreitet, aber wussten Sie, dass es noch eine andere Möglichkeit gibt, die als ternärer Operator bezeichnet wird und es Ihnen ermöglicht, Ihre if/then-Konstruktionen viel kürzer zu gestalten? Lassen Sie uns lernen, wie man einen benutzerdefinierten PowerShell ternären Operator erstellt.
Auf Kosten der Lesbarkeit, wie einige sagen, baut der ternäre Operator eine bedingte Logik auf, die kürzer, einfacher und mit weniger Code ist. Sie haben recht, aber es ist einfach schön, dieses ternäre Verhalten in PowerShell zu haben!
Wenn Sie nicht mit einem ternären Operator vertraut sind, bedeutet das im Grunde genommen, eine Hashtabelle oder ein ähnliches Konstrukt zu verwenden, um eine bedingte Entscheidung basierend auf Kriterien zu treffen.
If/Then in PowerShell
Um den Powershell ternären Operator zu erklären, beginnen wir zunächst mit einem Beispiel für eine if/then-Konstruktion.
Auf den ersten Blick denken Sie vielleicht, dass damit nichts falsch ist. Tatsächlich gibt es wirklich nichts, aber diese Bedingung könnte genauso einfach mit einer einzigen Zeile (unterhalb meines persönlichen Limits von 115 Zeichen) getestet werden.
Erstellen Sie nun eine PowerShell-Hashtabelle mit zwei Schlüsseln; $true
und $false
. Legen Sie dann die Werte fest, die angezeigt werden sollen, wenn eine von Ihnen definierte Bedingung erfüllt ist.
Anschließend definieren Sie die Bedingung ($CarColor ist Blau
) und überprüfen, ob diese Bedingung mit $CarColor -eq 'Blau'
erfüllt ist.
Verwenden Sie nun die Bedingung ($CarColor -eq 'Blau'
) als Schlüssel in diesem Hashtable. Dadurch wird die Überprüfung durchgeführt und das Ergebnis dann verwendet, um den Schlüssel im Hashtable nachzuschlagen.
Abschluss des PowerShell-Ternäroperators

Nur eine Zeile! Ist das nicht viel prägnanter? Anstelle einer if/then-Anweisung verwende ich einen Hashtable und führe eine Suche basierend darauf durch, ob $CarColor
gleich Blau
ist oder nicht. Der resultierende Index wird dann in der Konsole ausgegeben. Wenn Sie diese Methode verwenden möchten, ist es genauso einfach wie das Ausfüllen dieser Lücken:
Sie könnten auch mehr als nur $true
und $false
einschließen, wenn Sie möchten. Sie könnten beliebig viele Bedingungen im Hashtable hinzufügen und nach ihnen suchen. Es ist eine einfache Möglichkeit, lange if/then-Anweisungen oder switch-Anweisungen zu ersetzen.
Sie haben jetzt einen benutzerdefinierten PowerShell-Ternäroperator, den Sie in Ihren Skripten verwenden können!