Ich möchte, dass mein PowerShell-Skript anhält, wenn einer der von mir ausgeführten Befehle fehlschlägt (wie set -e
in der Bash). Ich verwende beide Powershell-Befehle ( New-Object System.Net.WebClient
) und Programme ( .\setup.exe
).
Antwort
Zu viele Anzeigen?
ubi
Punkte
3679
Umleitung stderr
a stdout
scheint auch ohne andere Befehle/Skriptblock-Wrapper zu funktionieren, obwohl ich keine Erklärung dafür finden kann, warum das so funktioniert.
# test.ps1
$ErrorActionPreference = "Stop"
aws s3 ls s3://xxx
echo "==> pass"
aws s3 ls s3://xxx 2>&1
echo "shouldn't be here"
Dies gibt wie erwartet Folgendes aus (der Befehl aws s3 ...
gibt zurück. $LASTEXITCODE = 255
)
PS> .\test.ps1
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
==> pass
- See previous answers
- Weitere Antworten anzeigen