标题: 用set可以改变errorlevel的值吗?
[打印本页]
作者: gqtc
时间: 2007-10-25 19:51
标题: 用set可以改变errorlevel的值吗?
1:set单个命令可以查看系统环境变量,errorlevel也是系统变量,我怎么看不到啊?
2:用set errorlevel=n可以改变errorlevel的值吗,比如:
set errorlevel=5
echo %errorlevel%
结果显示5
但是if errorlevel 5 echo haha
却什么也不显示,为什么?
迷惑中,望高手不吝赐教,谢谢!
作者: Climbing
时间: 2007-10-26 16:01
if %errorlevel%==5 echo ok
errorlevel是一个隐含的动态环境变量,如同%date%、%cd%这些环境变量一样,而且,它的值应该是由系统自动设定的,虽然你可以用set命令手工设置其值,但这只是意味着你自己定义了一个叫errorlevel的环境变量而已。
作者: Climbing
时间: 2007-10-26 16:08
手工设置了名为errorlevel的环境变量后,系统的同名环境变量就失效了,这意味着用%errorlevel%访问到的只是你自己定义的值,而这时系统的errorlevel只能用 if errorlevel才能访问到。
F:\WORK\DOS>set errorlevel=
F:\WORK\DOS>echo %errorlevel%
1
F:\WORK\DOS>set errorlevel=a
F:\WORK\DOS>echo %errorlevel%
a
F:\WORK\DOS>echo %errorlevel% | find /i "a"
a
F:\WORK\DOS>if errorlevel 1 echo not found.
F:\WORK\DOS>if errorlevel 0 echo found.
found.
F:\WORK\DOS>if %errorlevel%==0 echo found.
F:\WORK\DOS>echo %errorlevel% | find /i "b"
F:\WORK\DOS>if errorlevel 1 echo not found.
not found.
F:\WORK\DOS>if errorlevel 0 echo found.
found.
F:\WORK\DOS>if %errorlevel%==1 echo found.
F:\WORK\DOS>set errorlevel=
F:\WORK\DOS>if %errorlevel%==1 echo found.
found.
作者: gqtc
时间: 2007-10-26 18:41
谢谢两位的回答,我明白了