561 Stimmen

Beenden eines Skripts in PowerShell

Ich habe nach einer Möglichkeit gesucht, ein PowerShell (PS1)-Skript zu beenden, wenn ein nicht behebbarer Fehler innerhalb einer Funktion auftritt. Zum Beispiel:

function foo() {
    # Do stuff that causes an error
    $host.Exit()
}

Natürlich gibt es nicht so etwas wie $host.Exit() . Es gibt $host.SetShouldExit() aber dadurch wird das Konsolenfenster geschlossen, was ich nicht will. Was ich brauche, ist etwas Äquivalentes zu Pythons sys.exit() die einfach die Ausführung des aktuellen Skripts ohne weiteres beenden wird.

Bearbeiten: Ja, es ist nur exit . Duh.

5voto

Michael Meli Punkte 81

Ich habe dies für eine Wiederholung eines Programms verwendet. Ich weiß nicht, ob es helfen würde, aber es ist eine einfache if-Anweisung, die nur zwei verschiedene Einträge erfordert. Es funktionierte in Powershell für mich.

$rerun = Read-Host "Rerun report (y/n)?"

if($rerun -eq "y") { Show-MemoryReport }
if($rerun -eq "n") { Exit }

Ich weiß nicht, ob das hilfreich ist, aber ich glaube, es geht um das Beenden eines Programms, nachdem Sie es ausgeführt haben. In diesem Fall erfordert jedoch jede definierte Eingabe eine aufgelistete und kategorisierte Ausgabe. Man könnte auch den Exit eine neue Prompt-Zeile aufrufen lassen und das Programm auf diese Weise beenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X