[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决] choice 命令输出 %ERRORLEVEL% 结果始终为 1 是何解?

本帖最后由 极品小猫 于 2021-9-6 15:34 编辑
  1. @echo off
  2. echo %errorlevel%
  3. choice.exe /C ab /M "选择处理的字符:"
  4. echo %errorlevel%
  5. if %errorlevel%==2 echo N
  6. if %errorlevel%==1 echo Y
  7. pause
复制代码
实例代码如上,不管怎么操作,%errorlevel% 最终输出的结果都是 1

  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. echo %errorlevel%
  4. choice /C ab /M "选择处理的字符:"
  5. echo %errorlevel%
  6. if %errorlevel%==2 echo b
  7. if %errorlevel%==1 echo a
  8. pause
复制代码
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复  极品小猫
没有变量延时,前面要有 SetLocal EnableDelayedExpansion
还要把 %ERRORLEVEL% 改成 !E ...
aries215 发表于 2021-9-1 19:12



   当前的案例不需要用到变量延时吧?

TOP

可以变,没问题呀
idwma 发表于 2021-9-1 18:28



    理论上这命令是没问题的,但是实际的输出结果却很诡异……
所以才上来求助看会是什么原因影响

TOP

回复 1# 极品小猫


    什么操作系统?我的Win10、Win7无法重现这个问题。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# Batcher

WIN7 64,我查看过系统环境变量,没发现什么毛病,就是不知道为什么会出现这种诡异的问题
    不想为了这个问题重装系统

现在用这个黑科技方法解决需求:http://www.bathome.net/viewthread.php?tid=41643

不过还是想碰碰运气看看有没有大佬知道我这个是什么原因

TOP

因为%errorlevel%在开始就是1了
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

返回列表