Variable in Batch wird nach setzen nicht korrekt gelesen.

Gast #3171935
Lesenswert?

Hallo,

ich habe eine Frage bezüglich Batch.

Und zwar liegt bei mir das Problem vor, dass ich ein Batch-File mit 
einem solchen Konstrukt
1
    set RIVIERA_BATCH=vsimsa
2
    %RIVIERA_BATCH% -do ..\run.do

immer 2x ausführen muss weil es beim ersten mal sich mit den Variablen 
verhaspelt. Stets kommt beim ersten Durchlauf

"Der Befehl -do" ist entweder falsch geschrieben oder ... blabla."

Die Variable RIVIERA_BATCH wird also nicht korrekt gesetzt und hat 
beim Aufruf die Zeile darunter den Wert null.

Das kanns ja nicht sein. Kennt ihr solche Probleme und wie kann ich die 
elegant beheben?

Mir fallen da zwar dutzend Sachen ein wie einfach doppelt setzen, auf 
gesetzten Wert prüfen usw. aber vielleicht gibts da ne einfachere 
Variante. Das Problem könnte ich noch an mehr Stellen bekommen und 
jedesmal prüfen ob gesetzt ist und falls nicht nochmal setzen ist 
aufwändig. Und pauschal doppelt setzen könnte drauf raus laufen dass 
beim "ausliefern" des Codes an Kollegen diese denken "oh, is ja doppelt, 
ich miste mal aus". Außerdem ist dadurch die Ursache nicht behoben.
Gast #3171958
Lesenswert?

Und der ganze Batch der nicht funktioniert besteht genau aus diesen zwei 
Zeilen?
 ... oder mal wieder verkürzt und dadurch den "Fehler" entfernt?

Stehen die Zeilen z.B. in einer Schleifen oder einem sonstigen Block, 
was den "Fehler" erklären würde.
#3172096
Lesenswert?

Hallo,

Mik schrieb:
> ... oder mal wieder verkürzt und dadurch den "Fehler" entfernt?

Das kann ich mir auch gut vorstellen ;-)

Mik schrieb:
> Stehen die Zeilen z.B. in einer Schleifen oder einem sonstigen Block,
> was den "Fehler" erklären würde.

In diesem Fall könnte ein
1
SetLocal EnableDelayedExpansion
vor der FOR-Schleife helfen 
[http://de.wikibooks.org/wiki/Batch-Programmierung:_Programmierungshilfen].

Mit freundlichen Grüßen
Guido

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren