lorsque j'exécute ce script (à partir d'un fichier .bat):
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)
J'ai toujours:
ECHO is on.
Cela signifie que la var2
variable n'était pas vraiment définie. Quelqu'un peut-il m'aider à comprendre pourquoi?
&
et&&
opérateurs. Ce codeset x=some & set y=%x%thing & echo results %y%
sort%x%thing
.Je suis un peu en retard à la fête mais une autre façon de gérer cette condition est de continuer le processus à l'extérieur
if
, comme celui-ciOu / et utilisez la
goto
syntaxeDe cette façon, l'expansion se produit «dans le temps» et vous n'en avez pas besoin
setlocal EnableDelayedExpansion
. En bout de ligne, si vous repensez la conception de votre script, vous pouvez le faire comme çala source
echo off set var1=true if "%var1%"=="true" ( set var2=myvalue ) echo %var2% pause
.. et ça marche. "si vous créez une variable dans le fichier de commandes à laquelle il est possible d'accéder n'importe où dans le programme." . aticleworld.com/batch-file-variables-and-scope