中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 23:07
中国DOS联盟论坛 » 其它操作系统综合讨论区 » 用set可以改变errorlevel的值吗?
楼 主 用set可以改变errorlevel的值吗? 发表于 2007-10-25 19:51 ·  中国 山东 济南 教育网
初级用户
积分 38
发帖 15
注册 2007-10-13 12:20
UID 99609
性别 男
状态 离线
1:set单个命令可以查看系统环境变量,errorlevel也是系统变量,我怎么看不到啊?
2:用set errorlevel=n可以改变errorlevel的值吗,比如:
set errorlevel=5
echo %errorlevel%
结果显示5
但是if errorlevel 5 echo haha
却什么也不显示,为什么?
迷惑中,望高手不吝赐教,谢谢!
2 发表于 2007-10-26 16:01 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
UID 1565
性别 男
来自 河北保定
状态 离线
if %errorlevel%==5 echo ok

errorlevel是一个隐含的动态环境变量,如同%date%、%cd%这些环境变量一样,而且,它的值应该是由系统自动设定的,虽然你可以用set命令手工设置其值,但这只是意味着你自己定义了一个叫errorlevel的环境变量而已。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
3 发表于 2007-10-26 16:08 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
UID 1565
性别 男
来自 河北保定
状态 离线
手工设置了名为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.
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
4 发表于 2007-10-26 18:41 ·  中国 山东 济南 教育网
初级用户
积分 38
发帖 15
注册 2007-10-13 12:20
UID 99609
性别 男
状态 离线
谢谢两位的回答,我明白了
论坛跳转: