lote do windows SET dentro de IF não está funcionando

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 var2variável não foi realmente definida. Alguém pode me ajudar a entender por