In einem Skript, wenn ein Befehl-let oder andere ausführbare Anweisung Fehler ausgibt, gibt es einen Versuch/Catch-Typ von Mechanismus, um von diesen Fehlern wiederherzustellen? Ich bin keinem in der Dokumentation begegnet.Hat Windows Powershell einen Try/Catch- oder anderen Fehlerbehandlungsmechanismus?
Antwort
Sie verwenden einen Trap [exception-type] {}
Block vor dem Code, für den Sie Ausnahmen behandeln möchten.
+0 Die wirkliche Antwort ist jetzt try/catch in PowerShell v2 und später, wie im Kommentar zu der Frage erwähnt. I + 1d t @ Mark Ingram stattdessen, wie ich dies als eine dup, die nicht viel hinzufügen. (Ja, ich weiß, das war vor langer Zeit, aber ich verpasste den Kommentar zu der Frage zum ersten Mal und das war die höchste Abstimmung) –
Hier ist jemand (Adam Weigert), der Versuch/Fang/schließlich mit Powershell implementiert. Ich benutze dies anstelle der eingebauten Trap-Staement. Scheint natürlicher.
http://weblogs.asp.net/adweigert/archive/2007/10/10/powershell-try-catch-finally-comes-to-life.aspx
Ich habe in meinem TechNet Magazine Spalte darüber geschrieben (technetmagazine.com, wenn Sie interessiert sind).
Zuerst wird PowerShell v2 einen Standard Try ... Catch haben, was großartig ist.
Die vorhandene Shell (v1) unterstützt Trap {} -Konstrukte. Diese müssen vor dem Auftreten der Ausnahme definiert werden. Außerdem benötigen die meisten Cmdlets einen "STOP" -Parameter -EA, damit sie eine abfangbare Ausnahme generieren können. Traps können in jedem Bereich definiert werden und "sprudeln" bis sie gefangen sind oder bis sie den globalen (Shell-) Bereich erreichen.
Am Ende eines Traps, führen Sie Continue aus, um zur nächsten Codezeile im selben Bereich wie der Trap zurückzukehren, oder führen Sie Break aus, um den aktuellen Bereich zu verlassen und die Ausnahme zu werfen.
+1 für '-ErrorAction" STOP "' – mbx
- 1. Schleife über einen Vektor mit trycatch
- 2. tryCatch und ggplot
- 3. tryCatch unterdrücken Fehlermeldung
- 4. Hat Powershell assoziative Arrays?
- 5. Complex tryCatch in Schleife-R
- 6. R TryCatch mit testthat Erwartung
- 7. Wie kann ein Windows PowerShell-Skript seine Parameter an einen anderen Skriptaufruf übergeben?
- 8. Hat Windows 10 einen Registrierungseintrag für LowLevelHooksTimeout
- 9. Wie kann ich jede Express-JS-Anfrage in eine Domain oder einen TryCatch einbinden
- 10. Powershell - Windows-Updates installieren?
- 11. Suspend oder Ruhezustand von PowerShell
- 12. Mit Invoke-webRequest in Powershell 3.0 laicht einen Windows-Sicherheits
- 13. Hat RSpec einen eingebauten Matcher, um zu sehen, ob ein String den einen oder anderen Wert hat?
- 14. LocalAppData für einen anderen Windows-Benutzer finden
- 15. Windows Powershell SDK und System.Management.Automation.PSObject
- 16. PowerShell erstellen Registrierungspfad einen Liner?
- 17. Powershell oder Msdeploy
- 18. Powershell + PS2EXE-v0.5.0.0 + Windows Forms
- 19. Windows SDK-Umgebung und Powershell
- 20. Erstellen Sie einen lokalen Benutzer mit PowerShell (Windows Vista)
- 21. Hat Powershell eine Entsprechung zu Popen?
- 22. IE Automatisierung mit Windows PowerShell
- 23. Windows Powershell-Befehlszeilenäquivalent von dd
- 24. Pfadtrennzeichen in Windows PowerShell ändern
- 25. Windows Form von Powershell Codierung
- 26. Pro und Kontra von TryCatch versus TryParse
- 27. Bash oder Powershell Skripthilfe benötigt
- 28. Hat Windows nativ ein virtuelles oder temporäres Dateisystem?
- 29. Fluent Behauptungen: Nimmt einen oder anderen Wert
- 30. regex für den einen oder anderen Charakter?
Hinweis für zukünftige Leser: PowerShell v2 ist jetzt verfügbar und unterstützt Try/Catch/Finally. – JasonMArcher