cuando estoy ejecutando este script (desde un archivo .bat):
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)
Siempre consigo:
ECHO is on.
Lo que significa que la var2
variable no se estableció realmente. ¿Alguien puede ayudarme a entender por qué?
&
y&&
operadores. Este códigoset x=some & set y=%x%thing & echo results %y%
genera%x%thing
.Llego un poco tarde a la fiesta, pero otra forma de lidiar con esta condición es continuar el proceso afuera
if
, asíO / y usa la
goto
sintaxisDe esta manera, la expansión se produce "en el tiempo" y no es necesario
setlocal EnableDelayedExpansion
. En pocas palabras, si reconsideras el diseño de tu guión, puedes hacerlo así.fuente
echo off set var1=true if "%var1%"=="true" ( set var2=myvalue ) echo %var2% pause
... y está funcionando. "si va a crear una variable en el archivo por lotes a la que se pueda acceder desde cualquier parte del programa". . aticleworld.com/batch-file-variables-and-scope