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).

function

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"
}
PowerShell Funktion erstellen mit Parameter

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
Funktion aufrufen in PowerShell Script

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.

Funktion RETURN PowerShell

Microsoft hat übrigens auch eine Detaillierte Erklärung zu PS Functions.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments