Почему следующий пакетный файл Windows выводит Foo
после Bar
, а не Baz
?
@echo off
setlocal
set _=Foo
echo %_%
set _=Bar
if 1==1 (
set _=Baz
echo %_%
)
Вывод в моей системе (Microsoft Windows XP [Версия 5.1.2600]):
Foo
Bar
Если я удаляю условный оператор, ожидаемый результат Foo
и Baz
наблюдается.