about_Return
Kurze Beschreibung
Beendet den aktuellen Bereich, der eine Funktion, ein Skript oder Skriptblock sein kann.
Lange Beschreibung
Das return
Schlüsselwort beendet einen Funktions-, Skript- oder Skriptblock. Es kann verwendet werden, um einen Bereich an einem bestimmten Punkt zu beenden, einen Wert zurückzugeben oder anzugeben, dass das Ende des Bereichs erreicht wurde.
Benutzer, die mit Sprachen wie C oder C# vertraut sind, möchten möglicherweise das return
Schlüsselwort verwenden, um die Logik zu verwenden, einen Bereich explizit zu verlassen.
In PowerShell werden die Ergebnisse jeder Anweisung als Ausgabe zurückgegeben, auch ohne eine Anweisung, die das Return-Schlüsselwort enthält. Sprachen wie C oder C# geben nur den Wert oder die Werte zurück, die vom return
Schlüsselwort angegeben werden.
Hinweis
Ab PowerShell 5.0 wurde PowerShell sprache zum Definieren von Klassen mithilfe der formalen Syntax hinzugefügt. Im Kontext einer PowerShell-Klasse wird nichts aus einer Methode ausgegeben, außer was Sie mit einer return
Anweisung angeben. Weitere Informationen zu PowerShell-Klassen finden Sie in about_Classes.
Syntax
Die Syntax für das return
Schlüsselwort lautet wie folgt:
return [<expression>]
Das return
Schlüsselwort kann allein angezeigt werden, oder es kann von einem Wert oder Ausdruck wie folgt gefolgt werden:
return
return $a
return (2 + $a)
Beispiele
Im folgenden Beispiel wird das return
Schlüsselwort verwendet, um eine Funktion an einem bestimmten Punkt zu beenden, wenn eine bedingte Bedingung erfüllt ist. Ungerade Zahlen werden nicht multipliziert, da die Rückgabe-Anweisung beendet wird, bevor diese Anweisung ausgeführt werden kann.
function MultiplyEven
{
param($number)
if ($number % 2) { return "$number is not even" }
$number * 2
}
1..10 | ForEach-Object {MultiplyEven -Number $_}
1 is not even
4
3 is not even
8
5 is not even
12
7 is not even
16
9 is not even
20
In PowerShell können Werte zurückgegeben werden, auch wenn das return
Schlüsselwort nicht verwendet wird.
Die Ergebnisse jeder Anweisung werden zurückgegeben. Die folgenden Anweisungen geben beispielsweise den Wert der $a
Variablen zurück:
$a
return
Die folgende Anweisung gibt auch den Wert von $a
:
return $a
Das folgende Beispiel enthält eine Anweisung, die dem Benutzer mitteilen soll, dass die Funktion eine Berechnung ausführt:
function calculation {
param ($value)
"Please wait. Working on calculation..."
$value += 73
return $value
}
$a = calculation 14
"Bitte warten Sie. Arbeiten an Berechnungen..." Zeichenfolge wird nicht angezeigt. Stattdessen wird sie der $a
Variablen zugewiesen, wie im folgenden Beispiel:
PS> $a
Please wait. Working on calculation...
87
Sowohl die Informationszeichenfolge als auch das Ergebnis der Berechnung werden von der Funktion zurückgegeben und der $a
Variablen zugewiesen.
Wenn Sie eine Nachricht in Ihrer Funktion anzeigen möchten, beginnend mit PowerShell 5.0, können Sie den Information
Datenstrom verwenden. Der folgende Code korrigiert das obige Beispiel mithilfe des Write-Information
Cmdlets mit einem InformationAction
Von "Weiter".
function calculation {
param ($value)
Write-Information "Please wait. Working on calculation..." -InformationAction Continue
$value += 73
return $value
}
$a = calculation 14
Please wait. Working on calculation...
C:\PS> $a
87
Rückgabewerte und Die Pipeline
Wenn Sie eine Auflistung aus Ihrem Skriptblock oder Ihrer Funktion zurückgeben, wird die Registrierung der Elemente von PowerShell automatisch aufgehoben und gleichzeitig durch die Pipeline übergeben. Dies ist auf die einmalige Verarbeitung von PowerShell zurückzuführen. Weitere Informationen finden Sie unter about_pipelines.
Dieses Konzept wird durch die folgende Beispielfunktion veranschaulicht, die ein Array von Zahlen zurückgibt. Die Ausgabe der Funktion wird an das Measure-Object
Cmdlet weitergeleitet, das die Anzahl der Objekte in der Pipeline zählt.
function Test-Return
{
$array = 1,2,3
return $array
}
Test-Return | Measure-Object
Count : 3
Average :
Sum :
Maximum :
Minimum :
Property :
Um zu erzwingen, dass ein Skriptblock oder eine Funktion die Auflistung als einzelnes Objekt an die Pipeline zurückgibt, verwenden Sie eine der folgenden beiden Methoden:
Unärer Arrayausdruck
Wenn Sie einen unarischen Ausdruck verwenden, können Sie den Rückgabewert als einzelnes Objekt nach unten senden, wie im folgenden Beispiel dargestellt.
function Test-Return { $array = 1,2,3 return (, $array) } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Write-Output
mit NoEnumerate-Parameter .Sie können das
Write-Output
Cmdlet auch mit dem Parameter NoEnumerate verwenden. Im folgenden Beispiel wird dasMeasure-Object
Cmdlet verwendet, um die an die Pipeline gesendeten Objekte aus der Beispielfunktion anhand desreturn
Schlüsselworts zu zählen.function Test-Return { $array = 1, 2, 3 return Write-Output -NoEnumerate $array } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :