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

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

Printed on: April 19, 2024 at 20:04 o'clock

Mitglied: 77559
77559 Jun 30, 2010 at 12:18:41 (UTC)
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
Member: Larz
Larz Jun 30, 2010 at 12:47:52 (UTC)
Goto Top
Wunderbar, ich war schon etwas am verzweifeln...

Danke!

Gruß
Larz