FOR Schleife - endet
es sollen aber weitere Befehle ausgeführt werden
Hallo zusammen;
ich hab folgendes Problem bei einem Batchjob:
in einer Schleife werden IP Adressen ausgelesen und nacheinander gepingt um zu überprüfen ob der PC on- oder offline ist. Ist einer der PC's offline so wird dessen IP in ein seperates textfile gespeichert.
Meine Idee ist, dass nachdem alle Hosts durchlaufen sind, nachfolgend eine zweite Schleife startet, die die "nicht erreichbaren" Hosts (--> sep. Textfile) solange pingt, bis sie wieder online sind (mit entsprechender Protokollierung, damit ich später feststellen kann, wielange dieser Host offline war).
Im Prinzip funkt. alles wunderbar bis plötzlich (hab keine Ahnung was ich "verbrochen" habe) der Batchjob nach der ersten Schleife endet und die nachfolgenden Befehle ignoriert...
Ich habe wirklich viel gegoogelt - doch leider bin ich nicht fündig geworden.
Besten dank für die Hilfe!
Die Schleife selber sieht so aus:
Hallo zusammen;
ich hab folgendes Problem bei einem Batchjob:
in einer Schleife werden IP Adressen ausgelesen und nacheinander gepingt um zu überprüfen ob der PC on- oder offline ist. Ist einer der PC's offline so wird dessen IP in ein seperates textfile gespeichert.
Meine Idee ist, dass nachdem alle Hosts durchlaufen sind, nachfolgend eine zweite Schleife startet, die die "nicht erreichbaren" Hosts (--> sep. Textfile) solange pingt, bis sie wieder online sind (mit entsprechender Protokollierung, damit ich später feststellen kann, wielange dieser Host offline war).
Im Prinzip funkt. alles wunderbar bis plötzlich (hab keine Ahnung was ich "verbrochen" habe) der Batchjob nach der ersten Schleife endet und die nachfolgenden Befehle ignoriert...
Ich habe wirklich viel gegoogelt - doch leider bin ich nicht fündig geworden.
Besten dank für die Hilfe!
Die Schleife selber sieht so aus:
setlocal EnableDelayedExpansion
for /F "tokens=1,2" %%i in (targets.txt) do (
ping /n 1 /w 150 %%i >/nul
if !errorlevel! EQU 0 (
echo %%i %%j ONLINE %date% um %time%>>%output%
)
if !errorlevel! NEQ 0 (
echo %%i %%j OFFLINE %date% um %time% XXX>>%output%
echo %%i >> %target2%
)
)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 63595
Url: https://administrator.de/forum/for-schleife-endet-63595.html
Ausgedruckt am: 27.04.2025 um 22:04 Uhr
4 Kommentare
Neuester Kommentar

Warum so umständlich?
if errorlevel 1 (echo ..... usw. offline) else (echo ... usw. online)
Wenn du mehrzeilig schreiben willst, lies dir in der Windows-Hilfe den Kommentar bei if zur else-Anweisung durch.
Nachtrag:
Den Aufruf nach for packst du in eine Subroutine:
for /F "tokens=1,2" %%i in (targets.txt) do call :irgendwas
goto :eof
:irgendwas
if errorlevel 1 usw.
if errorlevel 1 (echo ..... usw. offline) else (echo ... usw. online)
Wenn du mehrzeilig schreiben willst, lies dir in der Windows-Hilfe den Kommentar bei if zur else-Anweisung durch.
Nachtrag:
Den Aufruf nach for packst du in eine Subroutine:
for /F "tokens=1,2" %%i in (targets.txt) do call :irgendwas
goto :eof
:irgendwas
if errorlevel 1 usw.

Lies meinen Nachtrag, ich war noch beim Edit.