SET
legt eine globale Umgebungsvariable fest. Es bleibt auch nach der Ausführung Ihres Skripts bestehen.
Schauen wir uns ein Beispiel an.
Zuerst lösche ich die Variable, um sicherzustellen, dass sie nicht existiert.
C:\Users\Oliver\Desktop>set TEST=
Ein kurzer Test:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Lassen Sie uns diese Batch-Datei erstellen und ausführen:
C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something
Lassen Sie uns den Wert von TEST nach der Ausführung meiner .bat
Datei sehen:
C:\Users\Oliver\Desktop>echo %TEST%
something
Also, ja, das Löschen der Variablen am Ende des Skripts ist eine gute Praxis.
Noch besser wäre es, das ganze Problem zu nutzen SETLOCAL
und ENDLOCAL
zu vermeiden.
Hier habe ich eine neue .bat
Datei, die Verwendungen SETLOCAL
und ENDLOCAL
:
C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal
Machen TEST
wir es klar und wiederholen es, um sicherzustellen, dass wir sauber anfangen:
C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%
Großartig, jetzt lass uns das Neue starten .bat
:
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something
C:\Users\Oliver\Desktop>endlocal
Jetzt TEST
wird noch leer sein:
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%