wm-is06
Goto Top

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:
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%
)
)

Content-Key: 63595

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

Printed on: April 25, 2024 at 17:04 o'clock

Mitglied: 50496
50496 Jul 11, 2007 at 15:25:53 (UTC)
Goto Top
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.
Member: wm-is06
wm-is06 Jul 11, 2007 at 15:30:54 (UTC)
Goto Top
Danke für die Antwort;
Mag sein, daß das nicht der allerbeste Stil ist und kompliziert aussieht - aber ich denke, dass das nicht das Problem an der Sache ist.
Ich versteh nicht, warum der ganze Job endet, wenn die Schleife fertig ist... keine nachfolgenden Befehle werden ausgeführt....
Mitglied: 50496
50496 Jul 11, 2007 at 15:47:43 (UTC)
Goto Top
Lies meinen Nachtrag, ich war noch beim Edit.
Member: wm-is06
wm-is06 Jul 11, 2007 at 15:53:31 (UTC)
Goto Top
das Problem hat sich erledigt, als ich den Rechner neu gestartet hab...

Beste Grüße
Wolfgang