Answers:
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
让我们看一下执行.bat
文件后的TEST值:
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%