批处理解释

来源:百度知道 编辑:UC知道 时间:2024/07/15 20:25:45
setlocal命令!!!!!!!!!
第一行 @echo off
第二行 setlocal
第三行 path=d:\
第四行 echo 局部环境变量path值
第五行 set path
第六行 end local
第七行 echo 系统环境变量path的值
第八行 set path

求高手帮我解释下这个批处理,以及setlocal命令
请求高手指点

这个批处理是演示setlocal和endlocal的作用的(注意,是endlocal,不是end local)。
CMD解释器有环境变量,我们开始-运行,输入CMD回车后,输入set回车,可以看到所有的环境变量。其中就有一条path=c:\windows\system32;c:\windows……。
这些变量对于CMD解释器来说,是全局的,当我们改变了当前解释器下的这些变量后,接下来引用这些变量(用%变量名%的方式引用)时值就会是你最后一次改变的!而setlocal则能使这些改变局部化。当使用setlocal后,接下的修改仅在使用endlocal之前有效,使用endlocal后将恢复原来的值。

第一行 @echo off 关闭命令回显
第二行 setlocal 开始局部变量块
第三行 path=d:\ 设置变量path的值为d:\
第四行 echo 局部环境变量path值 显示"局部环境……"字样
第五行 set path 显示path的值
第六行 endlocal 结束局部变量块
第七行 echo 系统环境变量path的值 显示"系统环境变量……"字样
第八行 set path 显示path的值

结果会看到两次path的值不同。第一个显示d:\,第二个显示c:\windows\system32;c:\windows……