Почему следующий файл Windows Batch File 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
наблюдается.
Дубликат http://stackoverflow.com/questions/305605/weird-scope-issue-in-bat-file –