Ich habe eine Reihe von Befehlen, die eine Systemvariable verwenden. Dabei handelt es sich um einzeilige Befehle wie die folgenden:
set test="blah" && echo %test%
Mir ist jedoch aufgefallen, dass die Variable des Set-Befehls für die Befehle in derselben Zeile nicht „gesetzt“ ist. Wenn ich den zweiten Befehl erneut ausführe, kann er die aktualisierte Variable lesen. Ich kann entweder & oder && verwenden und die Auswirkungen sind dieselben. Dieses Verhalten tritt sowohl bei Batchdateien als auch bei der einfachen Eingabe in die Eingabeaufforderung auf.
Wie kann ich erreichen, dass der Befehl die folgenden Anweisungen oder set
beeinflusst ?&
&&
Antwort1
Das liegt daran, dass die gesamte Befehlszeile auf einmal ausgewertet wird und die Variable somit test
aufgelöst wird, bevor Sie den set
Befehl ausführen.
Eine einfache Lösung könnte darin bestehen, die Befehle in separaten Zeilen einer Batchdatei zu platzieren und diese auszuführen.