Ich versuche, ein Stück einer Stapeldatei auszufällen, das eine Umgebungsvariable auf eine andere Stapeldatei setzt. Dieses Stück ist etwas involviert und ich würde es lieber nicht in mehreren Stapeldateien wiederholen. Ich werde diesen Beitrag nicht mit dem tatsächlichen Code, den ich in der verschachtelten Stapeldatei ausführen möchte, übermäßig komplizieren, sondern werde ein einfaches Beispiel liefern, das zeigt, was ich zu tun versuche und das Problem reproduziert.Festlegen der Umgebungsvariablen in der verschachtelten Stapeldatei
Batch1.cmd
cmd.exe /c setvar.cmd abc def
set abc
setvar.cmd
set var=%1
set val=%2
set %var%=%val%
Der Fehler für "gesetzt abc" in Batch1.cmd zurückgekehrt ist dies:
Umgebungsvariable abc nicht definiert
Ich stelle mir vor, cmd.exe startet eine neue Umgebung, weil die Variable bei der Rückkehr zu Batch1.cmd nicht existiert.
Gibt es eine Möglichkeit, eine Batch-Datei verschachteln und die Umgebung, die es erstellt, behalten?