batch: Umgebungsvariablen verarbeiten

  • #1
F

fruitfox

Guest
Hallo,

ich habe folgendes Problem:
Ich durlaufe eine Schleife, sagen wir dreimal. Innerhalb dieser Schleife ruf ich mit call eine Batch-Datei auf in der lediglich eine Umgebungsvariable gesetzt wird. Danach frage ich, ebenfalls noch in der Schleife, den neuen Wert der Variable ab. Entweder bekomme ich garnix oder wenn ich das Skript zweimal starte, bekomme ich beim zweiten Mal den Wert des letzten Schleifendurchlaufs. Komischerweise wird der Wert aber intern richtig gesetzt, sprich wenn ich ihn mit SET VARIABLE1 abfrage bekomme ich den richtigen Wert geliefert. Kann mir jemand helfen ?


for %%s in ( cmc swa int ) do (
call %%s\script.bat ### Hier wird Wert BASE gesetzt set BASE=ServerX
set BASE ### richtiger Wert
echo %BASE% ### falscher Wert
)


Wäre prima wenn mir jemand helfen könnte.

Gruss
Ulrich
 
  • #2
Du musst das echo-Kommando in der Batchdatei setzen, in der die Variable definiert wird.
So wie Du das formuliert hast, dürfte nur immer die letzte Variable angezeigt werden. Batchdateien werden zeilenweise abgearbeitet, dh. hier wird das for-Kommando komplett 3mal durchlaufen und die Variable Base zweimal überschrieben. Der letzte Wert bleibt dann erhalten und wird angezeigt.
 
  • #3
Aber ich verstehe nicht warum ich mit set ... den richtigen Wert bekomme, aber ihn nicht mit echo ausgeben kann. Beides befindet sich doch innerhalb der Schleife.

So wie du sagst funktioniert es, aber das nützt mir nicht viel. Mein Ziel ist es mit dem call-Aufruf ein vordefiniertes environment zu setzen und anschließend, nach dem call-Befehl, mit den gesetzen Umgebungsvariablen zu arbeiten.
 
  • #4
Dann setzt doch 3 verschiedene Variablen, die sich nicht gegenseitig mit dem For-Kommando überschreiben.
 
  • #5
Ne, geht nicht, da diese Variable später im environment weiter verwendet wird.
Nun ja, trotzdem danke.
 
Thema:

batch: Umgebungsvariablen verarbeiten

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben