Jump to content

Problem mit If-Block in Batch-Scripten


Gast Flipshot
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Gast Flipshot

Ich habe unsere Start-Scripte überarbeitet und die Spaghetti-Goto-Programmierung durch If-Blöcke ersetzt. Funktioniert unter XP wunderbar, nur unter NT scheint das wohl noch net gegeben zu haben. Ich habe z. B. folgende Anweisungen:

 

 

If "%ErrorLevel%" == "0" (

  If Exist "H:" (

    Net Use H: /Delete > Nul

  )

 

  Echo Verbinde Laufwerk H: mit \\Server\Freigabe...

  Net Use H: \\Server\Freigabe > Nul

)

 

... nächste Anweisung ...

 

 

Nun habe ich das Problem, dass unter NT irgendwie nur die Zeile zum Löschen der Verbindung mit dem H: Laufwerk ausgeführt wird. Die Zeile zum neu verbinden wird irgendwie ignoriert und es geht nach dem If-Block mit der nächsten Anweisung weiter.

 

Versteht NT noch gar keine If-Blöcke in Batch-Scripten oder wo liegt hier das Problem. Wie kann ich das Problem "elegant" lösen, ohne wieder auf die Spaghetti-Goto-Programmierung zurück greifen zu müssen?!

Link zu diesem Kommentar
Gast Flipshot

Jetzt bin ich aber gerade etwas verwirrt! Ich habe die Start-Scripte nun mal bei mir daheim unter einer Windows NT VMware getestet. Es funktioniert komischerweise! Alle Befehle in If-Blöcken werden automatisch mit & verbunden.

 

Aus

 

If "1" == "1" (

  Echo Hello again,

  Echo es ist schön dich wiederzusehen!

)

 

wird automatisch

 

If "1" == "1" (Echo Hello again, & Echo es ist schön dich wiederzusehen!)

 

Wieso funktioniert das dann bei mir im Geschäft net?! Gibt's da evtl. noch irgendwelche Schalter für die Kommandozeile, wie Befehle interpretiert werden sollen?!

Link zu diesem Kommentar

Es KÖNNTE an der Schreibweise liegen .. zumindest hab ich die Erfahrung schonmal gemacht. Probiers mal so:

 

 

if %errorlevel%==1 goto c1

 

 

Das goto kannst Du natürlich mit was anderem ersetzen.

 

So funzt es bei mir unter NT ...

 

btw, wozu brauchst du die klammern ? is mir nicht ganz klar ..

 

 

if %os%==Windows_NT echo Sie haben Windows NT!

 

 

so funzt es doch auch .. ohne die Klammern ..

Link zu diesem Kommentar
Gast Flipshot

Die Klammern benötige ich im Prinzip nur zwecks der strukturierten Programmierung. Bei einzelnen Befehlen kann ich diese natürlich ohne Klammern an die If-Klausel anhängen, aber es gibt bei mir auch Script-Passagen, die mehrere Befehle enthalten, welche dann etwas übersichtlich gestaltet werden sollen.

 

Ich versuch's mal mit deiner Schreibweise.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...