kirus22
Goto Top

Zähler in Batchdatei

Hallo zusammen,

ich möchte gerne einen Zähler in dieser Batch einbauen. Nur leider funktioniert es einfach nicht?


@echo off
set /a cnt=0
:loop

set /a cnt=%cnt%+1
echo %cnt%
if not %cnt% lss 10 goto end
Ping -n 5 10.1.1.1 | find /i "TTL"  
IF ERRORLEVEL 1 goto loop

echo Ping erfolgreich!
pause
goto eof


:end
echo Schleife %cnt% mal durchlaufen! IP nicht erreichbar!
pause

D.h. wenn 10 mal versucht wurde die IP zu pingen dann springe zum ende.... Und logischerweise wenn ip erreichbar dann Ping erfolgreich etc...

Gruß Kirus22

Content-ID: 115900

Url: https://administrator.de/contentid/115900

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

bastla
bastla 12.05.2009 um 16:16:24 Uhr
Goto Top
Hallo Kirus22!

Wo liegt eigentlich das Problem? Ich würde den Schleifenteil zwar eher so formulieren:
:loop
set /a cnt+=1
echo %cnt%
if %cnt% geq 10 goto :end
Ping -n 5 10.1.1.1 | find /i "TTL"  
IF ERRORLEVEL 1 goto :loop
aber auch Dein Ansatz sollte eigentlich funktionieren ...

Zu diskutieren wäre allenfalls die abschließende Meldung, da eigentlich die Schleife nur %cnt%-1 Mal durchlaufen wurde. face-wink

Grüße
bastla
Kirus22
Kirus22 12.05.2009 um 16:35:58 Uhr
Goto Top
hmmm, ich glaub mein rechner hat ein problem. wenn ich die batch starte dann habe ich ca. 37.000 mal cmd.exe und find.exe im taskmanager stehen....


also auf einem anderen pc funktioniert sie face-smile

Gruß
Biber
Biber 12.05.2009 um 18:33:02 Uhr
Goto Top
Moin Kirus22,

wenn ich die batch starte dann habe ich ca. 37.000 mal cmd.exe
Dann hast Du vermutlich noch irgendwo (genauer gesagt in Deinem CMD-Arbeitsverzeichnis) eine längst vergessene "Ping.bat" oder Ping.cmd, die statt der Ping.exe gerufen wird.

Und wenn in der Ping.bat auch noch ein "pause" steht, dann dauert das halt etwas.

DIR Ping.* -------> und alle Ping.cmd/ping.bat löschen oder umbenennen.

Grüße
Biber