SET
установит глобальную переменную среды. Он сохранится после выполнения вашего скрипта.
Давайте посмотрим на пример.
Сначала я очищаю переменную, чтобы убедиться, что она не существует.
C:\Users\Oliver\Desktop>set TEST=
Быстрый тест:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Давайте создадим этот пакетный файл и выполним его:
C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something
Давайте посмотрим значение TEST после выполнения моего .bat
файла:
C:\Users\Oliver\Desktop>echo %TEST%
something
Так что да, очистка переменной в конце скрипта - это хорошая практика.
Еще лучше было бы использовать SETLOCAL
и ENDLOCAL
чтобы избежать всей проблемы.
Здесь я создал новый файл .bat
который использует SETLOCAL
и ENDLOCAL
:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
Давайте очистим TEST
и повторим его, чтобы убедиться, что мы начнем чистить:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Отлично, теперь давайте запустим новый .bat
:
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something
C:\Users\Oliver\Desktop>endlocal
Теперь TEST
все равно будет пустым:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%