SETdéfinira une variable d'environnement globale. Il persistera après l'exécution de votre script.
Voyons un exemple.
Tout d'abord, j'efface la variable pour m'assurer qu'elle n'existe pas.
C:\Users\Oliver\Desktop>set TEST=
Un test rapide:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Créons ce fichier batch et exécutons-le:
C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something
Voyons la valeur de TEST après l'exécution de mon .batfichier:
C:\Users\Oliver\Desktop>echo %TEST%
something
Donc, oui, effacer la variable à la fin du script est une bonne pratique.
Encore mieux serait d'utiliser SETLOCALet ENDLOCALd'éviter tout le problème.
Ici, j'ai créé un nouveau .batfichier qui utilise SETLOCALet ENDLOCAL:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
Disons clair TESTet l'écho pour nous assurer que nous commençons propre:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Génial, exécutons maintenant le nouveau .bat:
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something
C:\Users\Oliver\Desktop>endlocal
Maintenant TESTsera toujours vide:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%