Perché il seguente file batch di Windows viene emesso seguito da Bar
anziché Baz
?Il file batch non riesce a impostare la variabile di ambiente nell'istruzione condizionale
@echo off
setlocal
set _=Foo
echo %_%
set _=Bar
if 1==1 (
set _=Baz
echo %_%
)
L'uscita sul mio sistema (Microsoft Windows XP [Versione 5.1.2600]) è:
Foo
Bar
Se rimuovo l'istruzione condizionale, i risultati attesi di Foo
e Baz
si osserva.
Duplicato di http://stackoverflow.com/questions/305605/weird-scope-issue-in-bat-file –