Oft soll eine bestimmte Aktion nur ausgeführt werden, wenn der Ziel-Host auch erreichbar ist. Das ist dann problematisch, wenn es automatisiert geschehen soll, also niemand dies manuell prüfen kann.
Eine recht einfache Möglichkeit, dies z. B. in einem klassischen Batch-Logonskript zu erreichen, ist die Kommandoverkettung der CMD-Shell. Sie lässt es zu, dass ein Befehl nur ausgeführt wird, wenn der vorangegangene Befehl erfolgreich war. Hier ein beispiel:
ping -n 1 10.0.1.10>nul && echo Host ist da
gibt nur dann die Meldung aus, wenn der Host 10.0.1.10 per Ping erreicht werden konnte. Aber Achtung: In manchen Situationen, insbesondere in komplexen Netzwerken, ist diese Lösung nicht zuverlässig. Meist gibt der ErrorLevel tatsächlich die richtige Antwort, aber nicht immer. Wenn z.B. der Router spinnt, dann gibt ping.exe als Antwort „TTL expired in transit“, und der ErrorLevel ist dennoch 0!
Als Alternative bleibt hierfür eine erweiterte Fassung:
@echo off ping 192.168.1.33 | find /i "bytes=" && echo Host ist da
Vielen Dank für die Alternative an Pegasus/Fritz Läng.
http://faq-o-matic.net/?p=624