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:
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%
)
)
Please also mark the comments that contributed to the solution of the article
Content-Key: 63595
Url: https://administrator.de/contentid/63595
Printed on: April 25, 2024 at 17:04 o'clock
4 Comments
Latest comment
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.