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%