PowerShell Funktion erstellen mit Parameter
Auch wie in anderen Programmiersprachen kann man in PowerShell Funktionen erstellen und diese in einem anderen Abschnitt anwenden. Die Übergabe von Parametern spielt dabei eine wichtige Rolle, denn genau das ist die eigentliche Überlegung an Funktionen (functions).
Was ist eigentlich eine PowerShell Funktion?
Eine PowerShell Funktion ist eine Sammlung von Code, welche allerdings erst beim Aufrufen der Funktion ausgeführt wird. Parameter lassen die Anweisungen dynamisch werden.
Vorteile
Die Vorteile einer Function in Windows PowerShell liegen klar auf der Hand:
- Möchte man bestimmte Anweisungen mehrmals ausführen, so muss der Code mit den Parametern nur einmal geschrieben werden.
- Würde man keine Funktion in PowerShell erstellen, so steigt der Quellcode und die Fehler-Rate steigt.
- Auch Anpassungen müssen dank einer Funktion nur einmal erledigt werden, wo man sonst im Quellcode die Änderungen an mehreren Stellen machen müsste.
Somit wird das PowerShell Script strukturierter und kann von Dritten einfacher verstanden werden. Funktionen müssen allerdings keine Parameter verwenden, man kann sie auch eigenständig und statisch verwenden.
Eine PowerShell Funktion erstellen
Um eine Funktion in PowerShell zu erstellen, wird diese mit function
und den gewünschten Namen deklariert. Der auszuführende Code wird dann in geschweiften Klammern angegeben.
# Funktion deklarieren function testfunktion { #Auszuführende Anweisung write-host "www.ITnator.net" }
Möchte man eine Funktion erstellen, welcher Parameter übergeben werden können, so benötigt man noch nach dem Funktionsnamen eine runde Klammer, in der die Variable übergeben wird.
# Funktion deklarieren function testfunktion ($yourURL){ #Auszuführende Anweisung write-host $yourURL }
Möchte man mehrere Parameter an eine Funktion übergeben, so ist es in PowerShell einfacher, diese mit param()
zu deklarieren. Das funktioniert folgendermaßen:
# Funktion deklarieren function testfunktion{ # Parameter param( [string]$yourURL, [int]$yourAGE, [string]$yourMAIL ) #Auszuführende Anweisung write-host "Die Website: $yourURL" write-host "Das Alter: $yourAGE" write-host "Die E-Mail: $yourMAIL" }
Die erstellte Funktion aufrufen im PowerShell Script
Um die eben erstelle Funktion im PS-Script aufrufen zu lassen, muss lediglich der Name angegeben werden.
# Funktion deklarieren function testfunktion{ #Auszuführende Anweisung write-host "www.ITnator.net" } # Funktion aufrufen testfunktion
Dieses Beispiel war ohne Parameter. Doch in Funktionen werden oft Parameter benutzt, um diese dynamisch abarbeiten zu lassen. Wie im PowerShell Beispiel oben, werden wir nun Parameter verwenden.
- Anders als bei anderen Programmiersprachen, will PowerShell die Parameter nicht mit Komma getrennt, sondern einfach mit Leerzeichen getrennt.
- Außerdem wird die Klammer weggelassen, da PowerShell ansonsten von einem Array ausgeht und den Inhalt in den ersten Parameter übergibt.
- Wenn nur ein Parameter verwendet wird, kann eine Klammer benutzt werden
# Funktion deklarieren function testfunktion{ # Parameter param( [string]$yourURL, [int]$yourAGE, [string]$yourMAIL ) #Auszuführende Anweisung write-host "Die Website: $yourURL" write-host "Das Alter: $yourAGE" write-host "Die E-Mail: $yourMAIL" } # Funktion aufrufen testfunktion "www.ITnator.net" 26 "[email protected]" #oder testfunktion -yourURL "www.ITnator.net" -yourAGE 26 -yourMAIL "[email protected]"
RETURN in einer Funktion verwenden um einen Wert zurück zu geben
Wenn man einer Funktion bestimmte Werte mit Parametern übergibt, so kann es sein, dass beispielsweise eine Berechnung stattfindet. Den Wert kann man dann mit RETURN zurückgeben in PowerShell.
- Werte können somit in ein anderes Format konvertiert werden
- Ein Array kann durchsucht werden
- Berechnungen können durchgeführt werden
- …
Damit man diese oft komplexen Anweisungen auslagern kann, werden Funktionen verwendet und das Ergebnis mit RETURN zurück gegeben.
# Funktion deklarieren function testfunktion ([int]$zahl){ #Auszuführende Anweisung $ergebnis = $zahl * 2 #Ergebnis ausgeben / zurück geben return $ergebnis } # Funktion aufrufen testfunktion(80)
Die Funktion wird in diesem Beispiel mit dem Integer Wert 80 aufgerufen. In dieser wird dann eine Berechnung durchgeführt, im Beispiel mal zwei. Das Ergebnis ist natürlich 160, welches mit RETURN ausgegeben wird.
Microsoft hat übrigens auch eine Detaillierte Erklärung zu PS Functions.