找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22475|回复: 4

[系统相关] 使用 set "erroelevel=x"后引发的故障

[复制链接]
发表于 2018-10-8 12:03:12 | 显示全部楼层 |阅读模式
内置变量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内置变量的值,怎么在让它恢复默认值呢?
发表于 2018-10-8 20:43:28 | 显示全部楼层
HKCS什么鬼
14行用户定义为空交还给系统
 楼主| 发表于 2018-10-8 21:24:21 | 显示全部楼层
回复 2# /zhqsystem/zhq

关键是errorlevel变量能还原吗?
发表于 2018-10-8 21:45:51 | 显示全部楼层
回复 3# 踏沙行
用户变量优先,没有时候进入系统默认变量,都没有默认为空变量,不建议改写返回值变量,你可以另取一个替代变量等于返回值
 楼主| 发表于 2018-11-5 15:34:52 | 显示全部楼层
回复 4# /zhqsystem/zhq
谢谢,看来只能这样了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 20:52 , Processed in 0.026083 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表