Wenn ich dieses Skript ausführe (aus einer .bat-Datei):
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)
Ich bekomme immer:
ECHO is on.
Das heißt, die var2
Variable wurde nicht wirklich gesetzt. Kann mir bitte jemand helfen zu verstehen warum?
&
und&&
Operatoren. Dieser Code wirdset x=some & set y=%x%thing & echo results %y%
ausgegeben%x%thing
.Ich bin ein bisschen spät , um die Partei , sondern eine andere Art und Weise mit diesem Zustand umzugehen , ist Prozess außerhalb fortzusetzen
if
, wie diesOder / und
goto
Syntax verwendenAuf diese Weise erfolgt die Erweiterung "rechtzeitig" und Sie brauchen sie nicht
setlocal EnableDelayedExpansion
. Fazit: Wenn Sie das Design Ihres Skripts überdenken, können Sie es so machenquelle
echo off set var1=true if "%var1%"=="true" ( set var2=myvalue ) echo %var2% pause
.. und es funktioniert. "Wenn Sie eine Variable in der Batch-Datei erstellen, auf die überall im Programm zugegriffen werden kann." . aticleworld.com/batch-file-variables-and-scope