Batch Pingliste mit Log File
Hallo Leute!
Ich möchte gerne PC-Namen aus einem Textfile pingen. Ist der Ping erfolgreich, so soll in der Log Datei ein Eintrag erscheinen.
Bsp: PC12345 Ping erfolgreich
Hat der Ping nicht funktioniert, so soll kein eintrag in die Log-Datei geschrieben werden.
Bisher bin ich so weit gekommen:
Mfg
Mini25
[Edit Biber] Code als Code formatiert und Beitrag nach Batch & Shell verschoben. [/Edit]
Ich möchte gerne PC-Namen aus einem Textfile pingen. Ist der Ping erfolgreich, so soll in der Log Datei ein Eintrag erscheinen.
Bsp: PC12345 Ping erfolgreich
Hat der Ping nicht funktioniert, so soll kein eintrag in die Log-Datei geschrieben werden.
Bisher bin ich so weit gekommen:
for /f %%i in (C:\hostnames.txt) do (
alive /Repeat=8 /Timeout=3 %%i
if %ERRORLEVEL% == 0 Goto error
if not %ERRORLEVEL% == 0 goto erfolg
:erfolg
echo %%i ping erfolgreich >> hallo.log goto ende
:error
echo fehler >> hallo.log goto ende
:ende
)
Mini25
[Edit Biber] Code als Code formatiert und Beitrag nach Batch & Shell verschoben. [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 111957
Url: https://administrator.de/contentid/111957
Ausgedruckt am: 29.03.2024 um 14:03 Uhr
4 Kommentare
Neuester Kommentar
Hallo Mini25!
Wenn nur bei Erfolg (=Errorlevel ungleich 0) ein Eintrag ins Log vorgenommen werden soll, könnte Folgendes reichen:
Ansonsten sollte es auch so gehen:
Grüße
bastla
Wenn nur bei Erfolg (=Errorlevel ungleich 0) ein Eintrag ins Log vorgenommen werden soll, könnte Folgendes reichen:
for /f %%i in (C:\hostnames.txt) do alive /Repeat=8 /Timeout=3 %%i || echo %%i ping erfolgreich>>hallo.log
for /f %%i in (C:\hostnames.txt) do (
alive /Repeat=8 /Timeout=3 %%i
if ERRORLEVEL 1 goto :erfolg
echo fehler >> hallo.log & goto :ende
:erfolg
echo %%i ping erfolgreich >> hallo.log goto ende
:ende
)
bastla
Hallo Mini25!
Oben hattest Du noch Errorlevel 1 für den Erfolgsfall ...
Ein "if errorlevel 0" ist sinnlos, da immer zutreffend - die Abfrage bedeutet nämlich "if errorlevel >=0"; daher eher so:
Alternativ dazu kannst Du die Zeilen 3 und 4 zusammenfassen zu
Grüße
bastla
Oben hattest Du noch Errorlevel 1 für den Erfolgsfall ...
Ein "if errorlevel 0" ist sinnlos, da immer zutreffend - die Abfrage bedeutet nämlich "if errorlevel >=0"; daher eher so:
@echo off & setlocal
for /f %%i in (C:\hostnames.txt) do (
alive /Repeat=5 /Timeout=1 %%i
if Errorlevel 1 (echo fehler >> hallo.log) else (echo %%i ping erfolgreich >> hallo.log)
)
alive /Repeat=5 /Timeout=1 %%i || (echo fehler >> hallo.log) && (echo %%i ping erfolgreich >> hallo.log)
bastla
Servus,
leicht OT:
"alive" - bist du Kiss fan ? - bzw. welches Tool benutzt du denn?
"mini25" - wenn nicht kiss fan, dann Fan einer kleinen Kiste mit 12" Rädern?
Anyway - poste mal einen Schnippsel deiner C:\hostnames.txt - vielleicht liegt da der Hund begraben.
gruß
leicht OT:
"alive" - bist du Kiss fan ? - bzw. welches Tool benutzt du denn?
"mini25" - wenn nicht kiss fan, dann Fan einer kleinen Kiste mit 12" Rädern?
Anyway - poste mal einen Schnippsel deiner C:\hostnames.txt - vielleicht liegt da der Hund begraben.
gruß