SET
ustawi globalną zmienną środowiskową. Będzie się utrzymywać po wykonaniu skryptu.
Spójrzmy na przykład.
Najpierw usuwam zmienną, aby upewnić się, że nie istnieje.
C:\Users\Oliver\Desktop>set TEST=
Szybki test:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Stwórzmy ten plik wsadowy i uruchommy go:
C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something
Zobaczmy wartość TESTU po wykonaniu mojego .bat
plik:
C:\Users\Oliver\Desktop>echo %TEST%
something
Tak więc, wyczyszczenie zmiennej na końcu skryptu jest dobrą praktyką.
Jeszcze lepiej byłoby użyć SETLOCAL
i ENDLOCAL
aby uniknąć całego problemu.
Tutaj stworzyłem nowy .bat
plik, który używa SETLOCAL
i ENDLOCAL
:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
Jasne TEST
i powtórz to, aby upewnić się, że zaczniemy czyścić:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Świetnie, teraz uruchommy nowy .bat
:
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something
C:\Users\Oliver\Desktop>endlocal
Teraz TEST
nadal będzie pusty:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%