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-Key: 115900

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

Printed on: April 18, 2024 at 23:04 o'clock

Member: bastla
bastla May 12, 2009 at 14:16:24 (UTC)
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
Member: Kirus22
Kirus22 May 12, 2009 at 14:35:58 (UTC)
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ß
Member: Biber
Biber May 12, 2009 at 16:33:02 (UTC)
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