Этот код
@echo off
setlocal EnableDelayedExpansion
set myvar=first
set first=second
echo myvar:!myvar!
set myvar=!myvar!
echo myvar:!myvar!
дает
myvar:first
myvar:first
в Windows Vista с пакетом обновления 2 (SP2).
Результат, который я ожидал,
myvar:first
myvar:second
Почему разница и как получить желаемый эффект?