Variable in Batch wird nach setzen nicht korrekt gelesen.

Gast #3171935
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
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
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.