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 var2variable 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
gotosintaxisDe 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