SET
imposterà una variabile d'ambiente globale. Persisterà dopo l'esecuzione del tuo script.
Diamo un'occhiata a un esempio.
Innanzitutto, deseleziono la variabile per assicurarmi che non esista.
C:\Users\Oliver\Desktop>set TEST=
Un rapido test:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Creiamo quel file batch ed eseguirlo:
C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something
Vediamo il valore di TEST dopo l'esecuzione del mio .bat
file:
C:\Users\Oliver\Desktop>echo %TEST%
something
Quindi sì, cancellare la variabile alla fine dello script è una buona pratica.
Ancora meglio sarebbe usare SETLOCAL
ed ENDLOCAL
evitare l'intero problema.
Qui, ho creato un nuovo .bat
file che utilizza SETLOCAL
e ENDLOCAL
:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
Cancella TEST
e riecheggiamo per assicurarci di iniziare in modo pulito:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Bene, ora eseguiamo il nuovo .bat
:
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something
C:\Users\Oliver\Desktop>endlocal
Ora TEST
sarà ancora vuoto:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%