quando estou executando este script (de um arquivo .bat):
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)
Eu sempre consigo:
ECHO is on.
Significa que a var2
variável não foi realmente definida. Alguém pode me ajudar a entender por quê?
&
e&&
. Este código éset x=some & set y=%x%thing & echo results %y%
gerado%x%thing
.Estou um pouco atrasado para a festa, mas outra forma de lidar com essa condição é continuar o processo fora
if
, assimOu / e use
goto
sintaxeDesta forma a expansão ocorre "no tempo" e você não precisa
setlocal EnableDelayedExpansion
. Resumindo, se você repensar o design do seu script, você pode fazer assimfonte
echo off set var1=true if "%var1%"=="true" ( set var2=myvalue ) echo %var2% pause
.. e está funcionando. "se você criar uma variável no arquivo em lote, ela poderá ser acessada em qualquer lugar do programa." . aticleworld.com/batch-file-variables-and-scope