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%