PowerShell - ElseIf
Moin,
es ist Montagmorgen. Wahrscheinlich schlafe ich noch ...
Die erste If-ElseIf-Anweisung funktioniert.
Die Zweite liefert
Einmal mit dem Holzhammer bitte ...
E.
es ist Montagmorgen. Wahrscheinlich schlafe ich noch ...
Die erste If-ElseIf-Anweisung funktioniert.
Die Zweite liefert
ElseIf : Die Benennung "ElseIf" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines
ausführbaren Programms erkannt.if($true) {"ja"} elseif ($true) {"nein"}
if($true) {"ja"}
elseif ($true) {"nein"}
Einmal mit dem Holzhammer bitte ...
E.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2307619153
Url: https://administrator.de/forum/powershell-elseif-2307619153.html
Ausgedruckt am: 31.03.2025 um 14:03 Uhr
10 Kommentare
Neuester Kommentar
Hallo,
Schreib es einfach so, wie vorgesehen:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Grüße
lcer
Schreib es einfach so, wie vorgesehen:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Grüße
lcer
Wenn ich
einzeln aufrufe, erhalte ich ebenfalls die Fehlermeldung. Die Shell erkennt also nicht, dass der Befehl eigentlich zur Zeile darüber zusammen gehört. ELSEIF ist kein eigener Powershell Befehl, sondern nur eine Option des IF Befehls. Ich denke die Shelll kommt mit der neuen Zeile nicht klar.
Der Interpreter interpretiert die Zeilen in der .ps1 Datei anders als die einzeln eingegebenen Befehle in der Shell. In der .ps1 Datei kann er vorausschauend nachschauen, was in der nächsten Zeile vorhanden ist. Wenn man das Script aus der Zwischenablage in die Powershell eingibt, wird jede Zeile einzeln ausgeführt, bevor die nächste Zeile aus der Zwischenablage gesendet wird...
elseif ($rue) {"nein"}
einzeln aufrufe, erhalte ich ebenfalls die Fehlermeldung. Die Shell erkennt also nicht, dass der Befehl eigentlich zur Zeile darüber zusammen gehört. ELSEIF ist kein eigener Powershell Befehl, sondern nur eine Option des IF Befehls. Ich denke die Shelll kommt mit der neuen Zeile nicht klar.
Der Interpreter interpretiert die Zeilen in der .ps1 Datei anders als die einzeln eingegebenen Befehle in der Shell. In der .ps1 Datei kann er vorausschauend nachschauen, was in der nächsten Zeile vorhanden ist. Wenn man das Script aus der Zwischenablage in die Powershell eingibt, wird jede Zeile einzeln ausgeführt, bevor die nächste Zeile aus der Zwischenablage gesendet wird...

Des weiteren lassen sich Zeilen auch mit einem Backtick in einer neuen Zeile fortsetzen wenn man ein Konstrukt verwendet das eigentlich mit dem ersten IF-Teil beendet ist dann funktioniert der Paste in die Shell ebenso noch
Ansonsten an das strukturierte Schreiben halten dann passiert so was auch nicht bei Pasten in die Shell
Für die PS 5 geht als Verkürzung oft auch der Trick mit der Hashtable
if ($true){"JA"} `
elseif($true){"NEIN"}
if ($true){
"JA"
}elseif($true){
"NEIN"
}
Zitat von @lcer00:
Für den shell-Einzeiler bietet sich folgender Syntax an:
Was aber eine Powershell 7 voraussetzt.Für den shell-Einzeiler bietet sich folgender Syntax an:
<condition> ? <if-true> : <if-false>
Für die PS 5 geht als Verkürzung oft auch der Trick mit der Hashtable
@{$true='JA';$false='NEIN'}[$true]