¿Por qué la siguiente salida del archivo Windows Batch Foo
seguido por Bar
, en lugar de Baz
?El archivo de proceso por lotes no puede establecer la variable de entorno dentro de la declaración condicional
@echo off
setlocal
set _=Foo
echo %_%
set _=Bar
if 1==1 (
set _=Baz
echo %_%
)
La salida en mi sistema (Microsoft Windows XP [Versión 5.1.2600]) es:
Foo
Bar
Si quito la sentencia condicional, el resultado esperado de Foo
y Baz
se observa.
Duplicado de http://stackoverflow.com/questions/305605/weird-scope-issue-in-bat-file –