Warum wirkt sich der Set-Befehl nicht auf die Befehle aus, denen unmittelbar & / && folgt?

Warum wirkt sich der Set-Befehl nicht auf die Befehle aus, denen unmittelbar & / && folgt?

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 setbeeinflusst ?&&&

Antwort1

Das liegt daran, dass die gesamte Befehlszeile auf einmal ausgewertet wird und die Variable somit testaufgelöst wird, bevor Sie den setBefehl ausführen.

Eine einfache Lösung könnte darin bestehen, die Befehle in separaten Zeilen einer Batchdatei zu platzieren und diese auszuführen.

verwandte Informationen