Freigeben über


Informationen zur Rückgabe

Kurze Beschreibung

Beendet den aktuellen Bereich, der eine Funktion, ein Skript oder Skriptblock sein kann.

Lange Beschreibung

Die return Schlüsselwort (keyword) beendet eine Funktion, ein Skript oder einen Skriptblock. Sie 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 die return Schlüsselwort (keyword) verwenden, um die Logik des Verlassens eines Bereichs explizit zu machen.

In PowerShell werden die Ergebnisse jeder Anweisung als Ausgabe zurückgegeben, auch ohne eine Anweisung, die die return Schlüsselwort (keyword) enthält. Sprachen wie C oder C# geben nur den Wert oder die Werte zurück, die return vom Schlüsselwort (keyword) angegeben werden.

Hinweis

Ab PowerShell 5.0 wurde eine Sprache zum Definieren von Klassen mithilfe der formalen Syntax hinzugefügt. Im Kontext einer PowerShell-Klasse wird nichts von einer Methode ausgegeben, außer dem, was Sie eine return Anweisung angeben. Weitere Informationen zu PowerShell-Klassen finden Sie in about_Classes.

Syntax

Die Syntax für die return Schlüsselwort (keyword) lautet wie folgt:

return [<expression>]

Die return Schlüsselwort (keyword) kann wie folgt allein oder von einem Wert oder Ausdruck gefolgt werden:

return
return $a
return (2 + $a)

Beispiele

Im folgenden Beispiel wird die return Schlüsselwort (keyword) verwendet, um eine Funktion an einem bestimmten Punkt zu beenden, wenn eine Bedingung erfüllt ist. Ungerade Zahlen werden nicht multipliziert, da die return 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 die return Schlüsselwort (keyword) 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 zurück $a:

return $a

Das folgende Beispiel enthält eine Anweisung, die den Benutzer darüber informieren soll, dass die Funktion eine Berechnung ausführt:

function calculation {
    param ($value)

    "Please wait. Working on calculation..."
    $value += 73
    return $value
}

$a = calculation 14

Die "Bitte warten. Arbeiten an der Berechnung..." Zeichenfolge wird nicht angezeigt. Stattdessen wird sie der $a Variablen zugewiesen, wie im folgenden Beispiel gezeigt:

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 ab PowerShell 5.0 anzeigen möchten, können Sie den Information Stream verwenden. Der folgende Code korrigiert das obige Beispiel mithilfe des Write-Information Cmdlets mit einem InformationAction von Continue.

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

Zurückgeben von Werten und der Pipeline

Wenn Sie eine Auflistung aus Ihrem Skriptblock oder Ihrer Funktion zurückgeben, löst PowerShell die Registrierung der Elemente automatisch auf und übergibt sie einzeln durch die Pipeline. 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 :

Verwenden Sie eine der folgenden beiden Methoden, um zu erzwingen, dass ein Skriptblock oder eine -Funktion die Auflistung als einzelnes Objekt an die Pipeline zurückgibt:

  • Unärer Arrayausdruck

    Mithilfe eines unären Ausdrucks können Sie Ihren Rückgabewert als einzelnes Objekt an die Pipeline senden, wie im folgenden Beispiel veranschaulicht.

    function Test-Return
    {
        $array = 1,2,3
        return (, $array)
    }
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    
  • Write-Output mit dem Parameter NoEnumerate .

    Sie können das Write-Output Cmdlet auch mit dem Parameter NoEnumerate verwenden. Im folgenden Beispiel wird das Measure-Object Cmdlet verwendet, um die Objekte zu zählen, die vom Schlüsselwort (keyword) aus der Beispielfunktion an die return Pipeline gesendet werden.

    function Test-Return
    {
        $array = 1, 2, 3
        return Write-Output -NoEnumerate $array
    }
    
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    

Weitere Informationen

about_Language_Keywords

about_Functions

about_Scopes

about_Classes

Write-Information

about_Script_Blocks