Board logo

标题: [系统相关] 使用 set "erroelevel=x"后引发的故障 [打印本页]

作者: 踏沙行    时间: 2018-10-8 12:03     标题: 使用 set "erroelevel=x"后引发的故障

内置变量errorlevel,通常在在命令执行成功后返回值为0,否则为1(有时候其他非零值)
但如果自己对这个变量赋值后,将该内置变量将无法发挥其正常作用
例如:
  1. echo.%errorlevel%    初始返回值为0
  2. reg query "HKCS\software\baidu1"  没有该子键,所以返回错误提示
  3. echo.%errorlevel%   因为查询失败,所以返回值为1
  4. reg query "HKCS\software\baidu"  存在该子键,所以返回查找到的结果
  5. echo.%errorlevel%   因为查询成功,所以返回值为0
  6. ==================
  7. set "errorlevel=1"  
  8. reg query "HKCS\software\baidu"  存在该子键,所以返回查找到的结果
  9. echo.%errorlevel%   因为查询成功,理应返回值为0,但因为之前进行了自定义,所以依然返回1
  10. 执行 set "errorlevel="
  11. 再执行上两步执行查询并找到结果,但还是返回1
复制代码
请问,如果不小心改变了errorlevel内置变量的值,怎么在让它恢复默认值呢?
作者: /zhqsystem/zhq    时间: 2018-10-8 20:43

HKCS什么鬼
14行用户定义为空交还给系统
作者: 踏沙行    时间: 2018-10-8 21:24

回复 2# /zhqsystem/zhq

关键是errorlevel变量能还原吗?
作者: /zhqsystem/zhq    时间: 2018-10-8 21:45

回复 3# 踏沙行
用户变量优先,没有时候进入系统默认变量,都没有默认为空变量,不建议改写返回值变量,你可以另取一个替代变量等于返回值
作者: 踏沙行    时间: 2018-11-5 15:34

回复 4# /zhqsystem/zhq
谢谢,看来只能这样了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2