Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.
2 Minuten Lesezeit (302 Worte)

Werte und Arrays aus Funktionen zurück liefern

Eine Funktion bei Powershell ist eigentlich nur ein benannter Scriptblock. Funktionen kann man nutzen, um Scripte übersichtlicher zu gestalten und bestimmte Funktionalitäten immer wieder aufrufbar in einen Block zu "giessen". Wenn Sie eine Funktion schreiben, soll diese fast immer auch Werte zurück liefern, mit denen Sie weiterarbeiten können. In vielen anderen Programmiersprachen verwendet man hierzu das Return-Statement. Powershell kann das grundsätzlich auch, allerdings ist das Return-Statement nicht wirklich notwendig, um Rückgaben zu erzeugen, da grundsätzlich jede Ausgabe von einer Funktion ausgegeben wird. Hierzu ein kleines Beispiel:

function Return-Value
{
    1
    Return 2
}
$Rueckgabe = Return-Value

Was befindet sich jetzt in der Variable $Rueckgabe? Nicht der Wert 2, wie man vermuten könnte, sondern $Rueckgabe ist ein Array, dass die Werte 1 und 2 enthält. Ein weiteres Beispiel:

function Return-Value
{
    1
    2 "Schoene Gruesse von Return-Value"
}
$Rueckgabe = Return-Value

$Rueckgabe ist wieder ein Array, das 3 Werte enthält, und das auch ohne Return. Return ist zur Rückgabe von Werten also nicht notwendig. Wofür benötigt man dann noch Return? Return beendet außerdem die Funktion. Befehle, die nach Return stehen, werden also nicht ausgeführt! Wenn Sie Arrays aus einer Funktion zurück liefern wollen, müssen Sie vorsichtig sein! Möchten Sie beispielsweise 2 Arrays zurückgeben, so fügt Powershell diese in der Rückgabe zu einem Array zusammen:&nb

function Return-Value 
{
$arr1 = 1,2,3,4
$arr2 = 5,6,7
$arr1
$arr2
}
$Rueckgabe = Return-Value

Rueckgabe enhält wiederum ein Array mit den Werten 1 bis 7. Geben Sie $Rueckgabe[0] an, so erhalten Sie aber nicht das erste Array, sondern nur den Werte 1. Um Powershell anzuweisen, die Arrays beizubehalten, müssen Sie der Ausgabe ein Komma voran stellen:

function Return-Value 
{
$arr1 = 1,2,3,4
$arr2 = 5,6,7
$arr1,$arr2
}
$Rueckgabe = Return-Value

Dann gibt $Rueckgabe[0] auch die Werte 1 bis 4 zurück.

Boot von VHD auf einem leeren Datenträger einricht...
Powershell Ausgabeströme verstehen und umleiten
 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Gäste
Dienstag, 04. August 2020
Für die Registrierung bitte Benutzername, Passwort und nötige Felder eingeben.

By accepting you will be accessing a service provided by a third-party external to https://www.netz-weise-it.training/

Nach oben