Wie verwendet man den PowerShell Exit-Befehl und seine Freunde?

Hast du dich jemals gefragt, „Was ist der beste Weg, um ein Skript zu beenden oder eine Anweisung in PowerShell zu beenden?“ Wird die PowerShell-Sitzung mit dem PowerShell-Exit-Befehl geschlossen? Wie können benutzerdefinierte Exit-Codes zurückgegeben werden? Nun, du hast Glück!

In diesem Leitfaden werden diese Fragen und mehr beantwortet. Erfahre alles über die verschiedenen Möglichkeiten, ein PowerShell-Skript oder eine Sitzung zu beenden.

Machen wir uns bereit, einige PowerShell-Sitzungen und Skripte zu beenden!

Voraussetzungen

Um diesem Leitfaden folgen zu können, stelle sicher, dass Windows PowerShell oder PowerShell Core auf deinem Computer installiert ist. Die Beispiele in diesem Artikel verwenden PowerShell 7.1.4.

Beenden der Konsole und Skripte mit dem PowerShell-Exit-Befehl

Lasst uns in diesem Tutorial eintauchen und zuerst das Schlüsselwort exit behandeln, eines der vielen reservierten Wörter in PowerShell. Ein reserviertes Wort ist eine Zeichenkombination, die in PowerShell integriert ist und eine bestimmte Aktion ausführt. Bei dem Schlüsselwort exit besteht die Aktion darin, dass PowerShell eine PowerShell-Sitzung beendet.

Üben wir! Öffne eine PowerShell-Konsolensitzung, gib exit ein und drücke die Eingabetaste. Die PowerShell-Konsole wird sofort geschlossen.

Dieses Schlüsselwort kann auch ein Skript beenden, anstatt die Konsolensitzung zu beenden. Wenn das Schlüsselwort exit in ein Skript eingefügt wird und exit nur das Skript beendet und nicht die gesamte Konsolensitzung, in der das Skript ausgeführt wird.

Kopieren Sie den folgenden Code und fügen Sie ihn in Notepad ein. Speichern Sie das Skript als test.ps1 im Verzeichnis C:\Temp. Führen Sie das PowerShell-Skript aus, indem Sie den Befehl .\text.ps1 wie im folgenden Screenshot gezeigt ausführen. Beachten Sie, dass PowerShell anstatt die Sitzung zu schließen, das Skript beendet und die Kontrolle an den Eingabeaufforderung der aktuellen PowerShell-Sitzung zurückgibt.

# test.ps1
Write-Host "Quick! Read this before the PowerShell session closes!!"
Start-Sleep -Seconds 2
Exit
The exit keyword stopped the script execution, but the console is still running

Empfangen und Bereitstellen von Feedback mit Exit-Codes

Das exit-Kommando ist hilfreich, wenn Sie möchten, dass ein Skript oder eine Funktion einige Code ausführt und dann beendet wird. Sie erhalten jedoch keine Rückmeldung, ob das Skript erfolgreich ausgeführt wurde oder nicht.

Wenn PowerShell den letzten Befehl in einem Skript ausführt, speichert es den Exit-Code dieses letzten Befehls in der Variable $LASTEXITCODE.

Es gibt zwei Standard-Exit-Codes:

PowerShell beschränkt Sie nicht auf 0 und 1 als Exit-Codes. PowerShell ermöglicht es Ihnen, benutzerdefinierte Exit-Codes zurückzugeben, solange sie Ganzzahlen sind.

Der Wertebereich für den Exit-Code ist plattformabhängig. Auf Windows sind beliebige 32-Bit-ganze Zahlen erlaubt. Auf Unix sind nur positive 8-Bit-ganze Zahlen erlaubt.

Um PowerShell mit einem benutzerdefinierten Exit-Code zu beenden, können Sie den Exit-Code als Argument für das Schlüsselwort exit angeben.

Kopieren und fügen Sie den folgenden Code in die vorhandene Datei test.ps1 ein und führen Sie das Skript mit dem Befehl .\Test.ps1 aus. Überprüfen Sie den Inhalt der Variablen $LASTEXITCODE. Indem Sie PowerShell anweisen, mit einem Exit-Code von 55 zu beenden, hat es dies getan, wie Sie unten sehen können.

Function foo {
    Write-Output "This foo function will be shown"
    Exit 55 # < -- Verwendung benutzerdefinierter Exit-Codes
}

foo
Returning a custom exit code

Abbrechen von Schleifen mit Break

Es wird Momente geben, in denen das Verhalten von exit nicht akzeptabel ist, wie z.B. das Beenden einer Funktion. Schauen wir, wie das Schlüsselwort break hilft.

Das Schlüsselwort break lässt PowerShell eine Schleife stoppen. Nach einem break wird der Code mit der nächsten Iteration fortgesetzt.

Pausen sind hilfreich in PowerShell-Schleifen wie der foreach, while, do-while und Switch-Anweisungen, da Sie steuern können, wo Ihr Code anhält, bevor er abgeschlossen ist.

Üben wir das Beenden von Schleifen. Unten sehen Sie einen Codeausschnitt mit einer for-Schleife. Die for-Schleife würde zehnmal durchlaufen, wenn nicht das break vorhanden wäre. Das break-Schlüsselwort wird ausgelöst, wenn der Iterator gleich acht ist. Sobald PowerShell das break-Schlüsselwort findet, stoppt es die Schleife.

for($i=1; $i -le 10; $i++) {
	if($i -eq 8) { break }
	$i
}

Sie können unten sehen, dass PowerShell die Schleife stoppt, wenn i gleich 8 ist. Der Code geht nie zu 9. Sie haben erfolgreich eine for-Schleife abgebrochen.

Breaking a for loop

Umleiten der Codeausführung mit Return

Das Schlüsselwort return unterscheidet sich leicht von den vorherigen Schlüsselwörtern, da es keine Befehle beendet oder unterbricht. Dieses Schlüsselwort leitet die Codeausführung um. Es gibt die Ausführung an seinen Aufruf zurück, während es Ihnen ermöglicht, Werte zurückzugeben. Und nicht nur Ganzzahlen, wie exit, bitte beachten Sie. Sie können jeden Typ zurückgeben! Diese Verhaltensweisen machen das Schlüsselwort return vielseitiger als die vorherigen Schlüsselwörter.

Lassen Sie uns dies anhand eines Beispiels sehen: Erstellen einer Funktion zum Kombinieren von Wörtern. Kopieren Sie den folgenden Code in Ihre PowerShell-Sitzung:

function WordPairing ($a,$b) {

	return "$a" + "$b" # <-- Kombiniert zwei Wörter zu einem Wort

}

$output = WordPairing taco cat

Write-Output "$output is a strange pairing of words."

Beachten Sie, wie der Wert, den Sie aus der Funktion zurückgeben, in der Ausgabe erscheint.

Redirecting code execution with the return keyword

Sie leiten die von der Funktion WordPairing generierte $output zurück an die Stelle, an der $output aufgerufen wird.

Fazit

In diesem Handbuch haben Sie verschiedene Möglichkeiten kennengelernt, PowerShell-Sitzungen und Skripte zu beenden. Jede Methode basiert auf einem spezifischen Schlüsselwort. Jedes Schlüsselwort hat einen bestimmten Anwendungsfall. Wenn sie angemessen verwendet werden, geben Ihnen diese Schlüsselwörter enorm viel Kontrolle darüber, was Ihr Skript tut.

Jetzt, da Sie verschiedene Möglichkeiten kennen, um Ihre PowerShell-Sitzungen zu beenden, wie planen Sie, Ihre Skripte mit diesem neu gewonnenen Wissen zu verbessern?

Source:
https://adamtheautomator.com/powershell-exit/