Forum: PC Hard- und Software Variable in Batch wird nach setzen nicht korrekt gelesen.


von Markus (Gast)


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.

von Mik (Gast)


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.

von Guido C. (guidoanalog)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.