larz
Goto Top

GOTO in FOR-Schleife funktioniert nicht

Hallo zusammen,

ich habe ein Script, dass über den Zugriff auf die config.sys die Erreichbarkeit mehrerer Server prüft.
Dazu verwende ich eine FOR-Schleife, innerhalb der auf Sprungmarken verwiesen wird:

for /f %%i in (servers_connected.ini) do (
IF EXIST \\%%i\c$\CONFIG.SYS GOTO :ERREICHBAR
@ECHO Server: %%i 			nicht erreichbar>>"%LogfilePath%\servercheck.log"   
goto :ENDE
:ERREICHBAR
@ECHO Server: %%i			OK>>"%LogfilePath%\servercheck.log"  
:ENDE
)


Ist der Server erreichbar (also die Datei vorhanden), bekomme ich im Log den Eintrag

Server: SERVERNAME OK

Ist die Datei nicht vorhanden, bekomme ich jedoch

Server: SERVERNAME nicht erreichbar
Server: SERVERNAME OK

Ich verstehe nicht, warum der Sprung zum Ende (Zeile 4) nicht funktioniert... weiß jemand Rat?

Gruß
Larz

Content-ID: 145998

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

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

77559
77559 30.06.2010 um 14:18:41 Uhr
Goto Top
Hallo @Larz,
deine Überschrift sagt es ja schon,
macht aber auch nichts, denn deine Art das goto zu benutzen erzeugt allseits ungeliebten Spaghetti-Code.
Es gibt andere, besser lesbare Konstrukte mit Klammern.

for /f %%i in (servers_connected.ini) do IF EXIST \\%%i\c$\CONFIG.SYS (
  @ECHO Server: %%i			OK>>"%LogfilePath%\servercheck.log"  
) Else (
  @ECHO Server: %%i 			nicht erreichbar>>"%LogfilePath%\servercheck.log"   
)

Gruß
LotPings
Larz
Larz 30.06.2010 um 14:47:52 Uhr
Goto Top
Wunderbar, ich war schon etwas am verzweifeln...

Danke!

Gruß
Larz