PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [CMD]: Wie in einer CMD Datei eine andere Datei einlesen bzw. Ping auswerten?


mf_2
2008-01-25, 20:41:54
Hallo,

Ich habe eine kleine Batch Datei geschrieben, welche einen Ping an einen Rechner absetzt und das Ergebjis dann auswerten soll.
Das Ergebnis wird via Ausgabeumleitung in eine Datei geschrieben:
ping test -n 1 -w 1000 > testdatei.log
Wie kann ich das nun auswerten? Ich häte mir sowas vorgestellt:
Wenn die Datei testdatei.log nur eine Zeile "Host ned erreichbar" findet, soll "Host down" ausgegeben werden, wenn es meherere Zeilen sind, dann war der Ping ja erfolgreich und es soll "Host online" ausgegeben werden. Oder kann ich das vllt. sogar ohne den Umweg über eine temporäre Ausgabedatei realisieren?
Danke schonmal!

Gruß,
mf_2

Baalzamon
2008-01-26, 12:26:28
Hmm, sowas?


set result=ping HOST -optioins | find "TESTSTRING"

if '%result%'=='TESTSTRING' GOTO :GUT

REM NICHT_GUT
echo NICHT_GUT
exit

REM GUT
:GUT
echo GUT
exit

Habe ich jetzt nicht ausprobiert und wahrscheinlich stimmt die Syntax irgendwie nicht, aber so in der Richtung sollte das gehen. ;) Ich denke find war das, was du gesucht hast.

mf_2
2008-01-26, 13:03:15
Ich habe mal daran etwas gebastelt, aber der speichert nur den ganzen Befehl in "result", statt ihn auszuführen.
So sieht mein Programm aus:

@echo off
set result=ping meinserver -n 1 | find "konnte"

if %result%=='konnte' GOTO :NGUT

echo %result%

:GUT
echo Gibts
goto :ENDE

:NGUT
echo Gibts ned
goto :ENDE

:ENDE

hadez16
2008-01-26, 13:36:15
ssooo
also du musst den befehl FIND ausführen und den ERRORLEVEL abfragen


@ echo off

ping test > test.txt

find /C "100% Verlust" test.txt

if ERRORLEVEL == 1 GOTO ENDE

echo Host online
pause
GOTO :EOF

:ENDE
echo Host offline
pause



so sollte es gehen

Baalzamon
2008-01-27, 14:47:51
ssooo
also du musst den befehl FIND ausführen und den ERRORLEVEL abfragen
[...]

Ahhh, ERRORLEVEL heisst das Ding unter Windows. Danke. :)