Ping errorlevel auswerten bzw. header verwerten
Hallo,
ich will einen ping auswerten, hab auch schon einige Beiträge darüber gefunden, aber nicht genau das, was ich will.
Wenn man pingt
ping www.microsoft.de
bekommt man die IP-Adresse, eine Zeitüberschreitungsmeldung (weil Microsoft ja nicht antwortet) und den Errorlevel 1 zurück.
Wenn man jetzt
ping www.qrdgsagasgdsagas.de
bekommt man wieder den Errorlevel 1 zurück, nur mit der Meldung:
Ping-Anforderung konnte Host "www.qrdgsagasgdsagas.de" nicht finden. Überprüfen Sie den Namen, und versuchen Sie es erneut.
Die beide Fälle will ich in einem Batch unterscheiden. die Unterscheidung des Errorlevel klappt eh, aber die feine Unterscheidung danach nicht.
In der Wiki steht eine Liste, nur weiß ich nicht, wie ich diese Werte in einem Batch überprüfen kann.
http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol
Ich will also unterscheiden können, ob eine Zeitüberschreitung ist ober ob der Host gar nicht gefunden wird.
Hoffe ich habe mich verständlich ausgedrückt.
Lg David
ich will einen ping auswerten, hab auch schon einige Beiträge darüber gefunden, aber nicht genau das, was ich will.
Wenn man pingt
ping www.microsoft.de
bekommt man die IP-Adresse, eine Zeitüberschreitungsmeldung (weil Microsoft ja nicht antwortet) und den Errorlevel 1 zurück.
Wenn man jetzt
ping www.qrdgsagasgdsagas.de
bekommt man wieder den Errorlevel 1 zurück, nur mit der Meldung:
Ping-Anforderung konnte Host "www.qrdgsagasgdsagas.de" nicht finden. Überprüfen Sie den Namen, und versuchen Sie es erneut.
Die beide Fälle will ich in einem Batch unterscheiden. die Unterscheidung des Errorlevel klappt eh, aber die feine Unterscheidung danach nicht.
In der Wiki steht eine Liste, nur weiß ich nicht, wie ich diese Werte in einem Batch überprüfen kann.
http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol
Ich will also unterscheiden können, ob eine Zeitüberschreitung ist ober ob der Host gar nicht gefunden wird.
Hoffe ich habe mich verständlich ausgedrückt.
Lg David
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 144938
Url: https://administrator.de/contentid/144938
Ausgedruckt am: 15.11.2024 um 01:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo David,
Du kannst die Ausgabe vom Ping mit dem Find näher begutachten. Das Wie ist abhängig vom Aufbau Deines Scriptes. Über Find kannst Du die Ausgabe auf mehrere "Aussagen" hin überprüfen.
Einfaches Beispiel
Antwort = 1
Antwort = 0
Markus
Du kannst die Ausgabe vom Ping mit dem Find näher begutachten. Das Wie ist abhängig vom Aufbau Deines Scriptes. Über Find kannst Du die Ausgabe auf mehrere "Aussagen" hin überprüfen.
Einfaches Beispiel
ping -n 1 www.google.de | find /i /c "Antwort"
ping -n 1 www.google.de | find /i /c "xyAntwort"
Markus
Hi,
habe ein ähnliches Problem:
Ich möchte das o.g. Skript gerne verwenden um es hinterher auszuwerten.
Derzeit erhalte ich ja inder Folgezeile eben eine 0 oder eine 1
Diese möchte ich nun in eine Variable schreiben um Sie auswerten zu können:
Wenn 1, dann ....
Wenn 2 dann ....
Die Auswertung bekomme ich mit IF-Abfragen schon hin, aber wie bekomme ich die 0 oder 1 in die Variable ?.
habe ein ähnliches Problem:
Ich möchte das o.g. Skript gerne verwenden um es hinterher auszuwerten.
Derzeit erhalte ich ja inder Folgezeile eben eine 0 oder eine 1
Diese möchte ich nun in eine Variable schreiben um Sie auswerten zu können:
Wenn 1, dann ....
Wenn 2 dann ....
Die Auswertung bekomme ich mit IF-Abfragen schon hin, aber wie bekomme ich die 0 oder 1 in die Variable ?.
Hier ist ein funktionierendes Beispiel:
Ergänzend könnte man noch abfragen, ob kein Parameter angegeben wurde.
@echo off
echo.
echo Ping test
echo.
REM errorlevel 1 heisst groesser oder gleich!
ping %1|find "Antwort"
if not errorlevel 1 goto istda
goto istnichtda
:istda
echo %1 ist erreichbar
goto ende
:istnichtda
echo %1 ist NICHT erreichbar
goto ende
:ende
echo.
echo Ping test
echo.
REM errorlevel 1 heisst groesser oder gleich!
ping %1|find "Antwort"
if not errorlevel 1 goto istda
goto istnichtda
:istda
echo %1 ist erreichbar
goto ende
:istnichtda
echo %1 ist NICHT erreichbar
goto ende
:ende
Ergänzend könnte man noch abfragen, ob kein Parameter angegeben wurde.