Ping und Errorausgabe per Batch?
Hallo,
ich möchte gerne 4 verschiedene IP Adressen anpingen und das alle 3 Minuten.
Wenn keine Verbindung möglich ist, möchte ich einen Alarm in Form eines Popup oder ähnliches, ansonsten soll es im Hintergrund laufen.
Geht das per Batch?
Muss ich das Ergebnis des Ping in eine .tmp Datei schreibe und diese dann anschließend auslesen oder wie kann ich das lösen?
Bin für jeden Tipp dankbar
ich möchte gerne 4 verschiedene IP Adressen anpingen und das alle 3 Minuten.
Wenn keine Verbindung möglich ist, möchte ich einen Alarm in Form eines Popup oder ähnliches, ansonsten soll es im Hintergrund laufen.
Geht das per Batch?
Muss ich das Ergebnis des Ping in eine .tmp Datei schreibe und diese dann anschließend auslesen oder wie kann ich das lösen?
Bin für jeden Tipp dankbar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176428
Url: https://administrator.de/contentid/176428
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
14 Kommentare
Neuester Kommentar
So eine ähnliche Frage hatte ich auch mal
Ping errorlevel auswerten bzw. header verwerten
Die erste Antwort hat mir da sehr geholfen wie man einen Ping auswerten kann.
Lg David
Ping errorlevel auswerten bzw. header verwerten
Die erste Antwort hat mir da sehr geholfen wie man einen Ping auswerten kann.
Lg David
Hi,
du kannst deine IP-Adressen in ein Textfile schreiben, dieses Auslesen und dann jede IP-Adresse anpingen und schauen ob ein errorlevel übergeben wird.
Das script ist ungetestet, sollten fehler auftauchen, bischen ausprobieren und vll findest du den fehler ansonsten nochmal melden ;)
Gruß
Schlumpf
du kannst deine IP-Adressen in ein Textfile schreiben, dieses Auslesen und dann jede IP-Adresse anpingen und schauen ob ein errorlevel übergeben wird.
SetLocal
Set Rechner=rechner.txt
for /f %%r in (%Rechner%) do (call :ping %%r)
goto :eof
:ping
Set rechner=%1
ping -n 1 %rechner%
if %errorlevel%==0 (goto :eof) else (goto :error)
:error
net send (Rechnername wo popup aufpoppen soll) Rechner %rechner% ist nicht erreichbar
:eof
Das script ist ungetestet, sollten fehler auftauchen, bischen ausprobieren und vll findest du den fehler ansonsten nochmal melden ;)
Gruß
Schlumpf
Okay ich probier grad mal woran es liegt. Was für ein Betriebssystem nutzt du?
Gruß
[Edit] Zu deinen Fragen.
Zu der Schleife Line4 -> Der geht Zeile für Zeile die Variable Rechner durch und holt sich jedesmal die nächste IP-Adresse.
Line 7 -> Schau mal bei der Schleife. da habe ich ein "do call :ping %%r" mittels diesen befehls wird die subroutine ":ping" aufgerufen und der wert "%%r " wird mit übergeben.
Also bei mir läuft das so durch. Falls es bei dir nicht geht, baue ein paar pausen an verschiedenen Stellen ein um zu sehen was für eine Meldung kommt bzw wo er stehen bleibt.
Gruß
Schlumpf
[/edit]
Gruß
[Edit] Zu deinen Fragen.
Zu der Schleife Line4 -> Der geht Zeile für Zeile die Variable Rechner durch und holt sich jedesmal die nächste IP-Adresse.
Line 7 -> Schau mal bei der Schleife. da habe ich ein "do call :ping %%r" mittels diesen befehls wird die subroutine ":ping" aufgerufen und der wert "%%r " wird mit übergeben.
SetLocal
Set "Rechner=rechner.txt"
for /f %%r in (%Rechner%) do (call :ping %%r)
goto :eof
:ping
Set rechner=%1
ping -n 1 %rechner%
if %errorlevel%==0 (goto :eof) else (goto :error)
:error
net send rechnername aber nur wenn du xp nutzt da Win7 kein net send mehr hat
:eof
Also bei mir läuft das so durch. Falls es bei dir nicht geht, baue ein paar pausen an verschiedenen Stellen ein um zu sehen was für eine Meldung kommt bzw wo er stehen bleibt.
Gruß
Schlumpf
[/edit]
Hi donnerkai,
schau mal hier auf meiner kleinen Page:
http://www.tackys-support.de/xptips.htm#N4
Aber ab Vista gibt es kein net send mehr, da musst du dann msg verwenden.
Potshock
schau mal hier auf meiner kleinen Page:
http://www.tackys-support.de/xptips.htm#N4
Aber ab Vista gibt es kein net send mehr, da musst du dann msg verwenden.
Potshock
Benutze bitte wenn du Code hier reinschreibst die Textformatierung <.code><./code> (ohne Punkt)
Richte dir doch einfach nen Task ein der alle x Minuten die batch aufruft und laufen lässt. Ansonsten musst ne endlosschleife bauen.
Ungetest
Zum beenden gehst halt in das Batchfenster und drückst STRG-C dann bricht er ab.
Das könntest du dir aber eben mittels Taskplaner ersparen, da dieser sobald der PC aus ist ja nicht mehr läuft.
Gruß
Schlumpf
Richte dir doch einfach nen Task ein der alle x Minuten die batch aufruft und laufen lässt. Ansonsten musst ne endlosschleife bauen.
:set
SetLocal
Set Rechner=rechner.txt
:start
for /f %%r in (%Rechner%) do (call :ping %%r)
goto :set
:ping
Set rechner=%1
ping -n 1 %rechner%
if %errorlevel%==0 (goto :start) else (goto :error)
:error
msg %username% Rechner %rechner% ist nicht erreichbar
:eof
Ungetest
Zum beenden gehst halt in das Batchfenster und drückst STRG-C dann bricht er ab.
Das könntest du dir aber eben mittels Taskplaner ersparen, da dieser sobald der PC aus ist ja nicht mehr läuft.
Gruß
Schlumpf
Nö nervst nicht ^^
Wenn du es so haben willst, dann lege dir im Taskplaner einen Task an, weil der startet die Batch ohne das du es siehst und dann bekommst du immer nur die Fehlermeldungen.
Stoppen kannst du die Batch dann über Taskplaner -> task stoppen.
Die Batch händisch starten und dann silent weiter laufen lassen, habe ich keine Ahnung wie das geht sry.
Gruß
Wenn du es so haben willst, dann lege dir im Taskplaner einen Task an, weil der startet die Batch ohne das du es siehst und dann bekommst du immer nur die Fehlermeldungen.
Stoppen kannst du die Batch dann über Taskplaner -> task stoppen.
Die Batch händisch starten und dann silent weiter laufen lassen, habe ich keine Ahnung wie das geht sry.
Gruß