SET
irá definir uma variável de ambiente global. Ele persistirá após a execução do seu script.
Vamos dar uma olhada em um exemplo.
Primeiro, limpo a variável para garantir que ela não exista.
C:\Users\Oliver\Desktop>set TEST=
Um teste rápido:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Vamos criar esse arquivo em lotes e executá-lo:
C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something
Vamos ver o valor de TEST após a execução do meu .bat
arquivo:
C:\Users\Oliver\Desktop>echo %TEST%
something
Portanto, sim, limpar a variável no final do script é uma boa prática.
Melhor ainda seria usar SETLOCAL
e ENDLOCAL
evitar todo o problema.
Aqui, criei um novo .bat
arquivo que usa SETLOCAL
e ENDLOCAL
:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
Vamos limpar TEST
e repetir para garantir que começamos a limpar:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Ótimo, agora vamos rodar o novo .bat
:
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something
C:\Users\Oliver\Desktop>endlocal
Agora TEST
ainda estará vazio:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%