Heute befassen wir uns mit der IF Logik in PowerShell. Wie in jeder Programmiersprache besitzt auch PowerShell eine “IF” Funktion die eigentlich schon fast selbsterklärend ist.
Dennoch gibt es immer wieder Fragen zum Syntax und zu verschachtelten IF Abfragen und zu mehrfachen Bedingungen.
Deshalb gibt es heute diesen Beitrag zu PowerShell “IF”
Der Einstieg
Beginnen wir mit einem einfachen Beispiel. Wir wollen die Variable “$Geschlecht” abfragen ob dieses männlich oder weiblich ist.
Dazu definieren wir die Variable und fragen ob es ein Junge oder ein Mädchen ist
$Geschlecht=”W” if ($Geschlecht -eq “M”) { Write-Host “Es ist ein Junge” } elseif ($Geschlecht -eq “W”) { Write-Host “Es ist ein Mädchen” }
Das Ergebnis sollte nicht allzu verblühend sein, bei M ist es ein Junge, ein Mädchen bei W.
Was passiert aber wenn das Geschlecht nicht klar definiert ist, in unserem Fall würde nichts passieren, weil unsere Abfrage nur M oder W erwartet.
Dazu müssten wir die Abfrage etwas anpassen.
$Geschlecht="W" if ($Geschlecht -eq "M") { Write-Host "Es ist ein Junge" } elseif ($Geschlecht -eq "W") { Write-Host "Es ist ein Mädchen" } else { Write-Host "Geschlecht nicht erkennbar" }
Jetzt erhalten wir immer ein Ergebnis, egal wie das Geschlecht definiert wurde.
Multiple Abfragen
Natürlich können wir auch mehrere Abfragen kombinieren mittels “-OR” oder “-AND”
In diesem Beispiel erfragen wir die Sprache und reagieren dementsprechend darauf.
$Language="DE" if ($Language -eq "DE" -or $Language -eq "AT") { Write-Host "es wird deutsch gesprochen" } elseif ($Language -eq "EN") { Write-Host "es wird englisch gesprochen" }
Sollte die Variable “$Language” DE oder AT sein wird natürlich deutsch gesprochen, so könnt ihr ganz einfach auf mehrere Werte reagieren.
Verschachtelte IF Abfragen
Natürlich ist es auch möglich eine IF Abfrage innerhalb einer IF abfrage zu bauen.
$Language="DE" $Location="AT" if ($Language -eq "DE") { if ($Location -eq "AT") { Wrtie-Host "keine Fremdsprache zu erlernen" } elseif ($Location -eq "US") { Write-Host "du solltest Englisch lernen" } }
Wie viele IF abfragen ihr verschachtelt ist ganz euch überlasen, nur lesen sollte man den Code noch können.
Welches PowerShell Thema interessiert euch noch?
Michael Seidl aka Techguy