Beenden ein Skript in Windows PowerShell
-
Verwenden den Befehl
Exit
zum Beenden eines Skripts in Windows PowerShell -
Verwenden den Befehl
Throw
zum Beenden eines Skripts in Windows PowerShell -
Der
Return
-Befehl -
Der
break
-Befehl -
Der
continue
-Befehl
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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInVerwandter Artikel - PowerShell Script
- Beenden Sie manuell die Ausführung eines langen Skripts in PowerShell
- Verwenden Sie Get-Acl, um die Berechtigung für einen bestimmten Benutzer in PowerShell zu überprüfen
- Konvertieren Sie die PowerShell-Datei in eine ausführbare Datei
- Ausführen eine PowerShell-Skript
- Ausführen eine PowerShell-Skript aus einer Batch-Datei