Я немного опоздал на вечеринку, но еще один способ справиться с этим условием - продолжить процесс за пределами if
, например
set var1=true
if "%var1%"=="true" (
set var2=myvalue
)
echo %var2%
Или / и использовать goto
синтаксис
set var1=true
if "%var1%"=="true" (
set var2=myvalue
goto line10
) else (
goto line20
)
. . . . .
:line10
echo %var2%
. . . . .
:line20
Таким образом, расширение происходит «вовремя», и вам не нужно setlocal EnableDelayedExpansion
. В итоге, если вы переосмыслите дизайн своего скрипта, вы можете сделать это следующим образом