Beenden ein Skript in Windows PowerShell

  1. Verwenden den Befehl Exit zum Beenden eines Skripts in Windows PowerShell
  2. Verwenden den Befehl Throw zum Beenden eines Skripts in Windows PowerShell
  3. Der Return-Befehl
  4. Der break-Befehl
  5. Der continue-Befehl
Beenden ein Skript in Windows PowerShell

Es gibt viele Möglichkeiten, ein Skript in Windows PowerShell zu beenden. Einige von ihnen mögen zwar vom Kontext her ähnlich klingen, aber ihr eigentlicher Zweck unterscheidet sich in Bezug auf die Funktionalität voneinander.

In diesem Artikel werden Möglichkeiten zum Beenden eines Skripts in Windows PowerShell aufgelistet und einzeln definiert.

Verwenden den Befehl Exit zum Beenden eines Skripts in Windows PowerShell

Der Befehl Exit beendet Ihr Skript, wie von seinem Namen abgeleitet. Wenn Sie keine offene Sitzung haben, schließt dieser Befehl auch Ihr Shell- oder Skriptfenster. Der Befehl Beenden ist auch hilfreich, um mithilfe von Exit-Codes Feedback zu geben.

exit

Wenn Sie nur den Befehl exit ausführen, kann der Exit-Code 0(Standard) sein, was Erfolg oder normale Beendigung bedeutet, oder 1, was einen Fehler oder einen nicht abgefangenen Wurf bedeutet.

Das Herausragende an Exit-Codes ist, dass die Exit-Codes vollständig anpassbar sind. Solange der Exit-Code eine Ganzzahl ist, ist der Exit-Code gültig. Um den letzten Exit-Code zu erfahren, können Sie zusätzlich die Variable $LASTEXITCODE ausgeben.

Exit.ps1

Write-Output 'Running sample script.'
exit 200

Beispielcode:

PS C:\>powershell.exe .\Exit.ps1
PS C:\>Running sample script.
PS C:\>Write-Output $LASTEXITCODE
PS C:\>200

Denken Sie auch daran, dass, wenn Sie eine andere PowerShell-Datei mit einem exit-Befehl aus einem laufenden PowerShell-Skript aufrufen, das laufende Skript ebenfalls beendet wird.

Verwenden den Befehl Throw zum Beenden eines Skripts in Windows PowerShell

Der Throw-Befehl ähnelt dem Exit-Befehl mit einem Exit-Code, ist aber viel informativer. Sie können den Befehl und einen benutzerdefinierten Ausdruck verwenden, um Abbruchfehler zu generieren. Normalerweise wird der Throw-Befehl innerhalb des Catch-Blocks innerhalb eines Try-Catch-Ausdrucks verwendet, um eine Ausnahme angemessen zu beschreiben.

Beispielcode:

Try{
    $divideAnswer = 1/0
}Catch{
    Throw "The mathematical expression has a syntax error"
}

Ausgabe:

The mathematical expression has a syntax error
At line:4 char:5
+     Throw "The mathematical expression has a syntax error"
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (The mathematica... a syntax error:String) [], RuntimeException
    + FullyQualifiedErrorId : The mathematical expression has a syntax error

Der Return-Befehl

Im Gegensatz zum Exit-Befehl kehrt der Return-Befehl zum vorherigen Aufrufpunkt zurück und schließt Ihr Scripting-Fenster nicht.

Normalerweise verwenden wir den Befehl Return, um Werte von einer ausgeführten Funktion irgendwo im Skript zurückzugeben.

Beispielcode:

Function sumValues($int1,$int2){
	Return ($int1 + $int2)
}

# The function sumValues is called below, and the script will return to 
# the same line with a value and store it in the output variable
$output = sumValues 1 2 

Write-Output $output

Ausgabe:

3

Der break-Befehl

Wir verwenden den Befehl break, um Schleifen und Fälle zu beenden.

Beispielcode:

$numList = 1,2,3,4,5,6,7,8

foreach($number in $numList){
    if ($number -eq 8){
        #Terminate loop if number variable is equal to 8
         break
    }

    Write-Output $number
}

Ausgabe:

1
2
3
4
5
6
7

Wenn wir verschachtelte Schleifen haben, brechen wir nur von der Schleife ab, von der aus der Befehl break aufgerufen wird.

Beispielcode:

While ($true) {
    While ($true) {
        #The break command will only break out of this while loop
        break
    }
   #The script will continue to run on this line after breaking out of the inner while loop
}

Wenn Sie aus einer bestimmten verschachtelten Schleife ausbrechen möchten, verwendet der Befehl break Labels als Parameter.

While ($true) {
    :thisLoop While ($true) {
        While ($true) {
	        #The break command below will break out of the `thisLoop` while loop.
            Break thisLoop
        }
    }
}

Der continue-Befehl

Der Befehl continue beendet das Skript auch auf Schleifenebene. Anstatt jedoch die gesamte Schleife sofort zu beenden, beendet der Befehl continue nur die aktuelle Iteration und hält die Schleife am Laufen, bis alle Iterationen verarbeitet wurden.

Wir können sagen, dass dies ein Befehl ist, um etwas zu überspringen, wenn eine Schleife ausgeführt wird.

Beispielcode:

$numList = 1,2,3,4,5,6,7,8

foreach($number in $numList){
    if ($number -eq 2){
        #The continue command below will skip number 2 and will directly process the next iteration, resetting the process to the top of the loop.
        continue
    }

    Write-Output $number
}

Ausgabe:

1
3
4
5
6
7
8
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell Script