tobiased
Goto Top

Unterdrückung einer Fehlermeldung

Hallo Community,

ich habe eine vermeintlich simple Frage, dennoch bekomme ich es einfach nicht hin. Ich habe ein kleines Script geschrieben welches wie folgt aussieht.

Invoke-RestMethod -Uri "https://example.com/rest/api/content/1234" -Method GET -Headers $Headers | Out-Null  
$check = $?
if ($check -like "False"){  
"false"  
}
else
{
"true"  
}

Dieses Script funktioniert auch so wie ich es möchte. Leider wird aber immer eine Fehlermeldung angezeigt, sollte der REST-Call fehlschlagen. Und genau diese Fehlermeldung möchte ich unterdrücken, sodass sie nicht mehr angezeigt wird.

PS: Wer eine elegantere Version meines Scrips anzubieten hat, immer gerne face-smile

Content-ID: 305202

Url: https://administrator.de/contentid/305202

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

129413
Lösung 129413 23.05.2016 aktualisiert um 14:58:29 Uhr
Goto Top
Ein try {} catch{} um das Konstrukt bauen oder den Request mit plain NET Objects HttpRequestObject nachbauen oder -ErrorAction Ignore benutzen wenn mindestens PS 3.0 vorhanden ist .

Was für eine Fehlermeldung ist das? Kannst du eine funktionsfähige URL liefern ?

Gruß skybird
Tobiased
Tobiased 23.05.2016 um 15:09:36 Uhr
Goto Top
Hallo skybird,

danke für deine schnelle Antwort. Die Fehlermeldung ist ein 404 Error vom Server, weil eben die Seite mit der ID 1234 nicht existiert. Zu deiner Lösung
-EA Ignore funktioniert bei mir nicht (PS 4.0), hatte zuvor auch schon -EA "SilentlyContinue" versucht. Try/Catch wollte ich erst nicht nehmen, da ich nicht beachtet habe, dass ich einfach die check Variable darüber definieren kann und danach die try/catch Anweisung sofort wieder verlassen kann. Also mit anderen Worten ich war einfach nur dumm face-smile

sei's drum ich danke dir jedenfalls
SaschaRD
Lösung SaschaRD 24.05.2016 um 11:44:09 Uhr
Goto Top
Hallo @Tobiased,

kleiner Tipp zu deinem oben genannten Code:
$check = Invoke-RestMethod -Uri "https://example.com/rest/api/content/1234" -Method GET -Headers $Headers | Out-Null  
if (! $check){
Write-Host $check
}
Write-Host $check
Bei einer Prüfung auf den boolean true, einfach die Negation ! entfernen. Die Else Bedingung könntest Du dir auch sparen, wenn nichts weiter kommt. Dies spart Zeilen face-wink

Gruß, Sascha