Logo faq-o-matic.net
Logo faq-o-matic.net

Wie führe ich eine Aktion nur aus, wenn der Ziel-Host erreichbar ist?

von veröffentlicht am12. Oktober 2003, 15:27 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Batch, Scripting, Windows   Translate with Google Translate Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 22. Januar 2008

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.

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!