SET
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, eu limpo a variável para ter certeza de que ela não existe.
C:\Users\Oliver\Desktop>set TEST=
Um teste rápido:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Vamos criar esse arquivo em lote 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 arquivo .bat
:
C:\Users\Oliver\Desktop>echo %TEST%
something
Então, sim, limpar a variável no final do script é uma boa prática.
Melhor ainda seria usar SETLOCAL
e ENDLOCAL
para evitar o problema problema.
Aqui, criei um novo arquivo .bat
que usa SETLOCAL
e ENDLOCAL
:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
Vamos limpar TEST
e fazer eco para garantir que começaremos limpo:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Ótimo, agora vamos executar 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%