标题: [其他] [已解决] choice 命令输出 %ERRORLEVEL% 结果始终为 1 是何解? [打印本页]
作者: 极品小猫 时间: 2021-9-1 13:52 标题: [已解决] choice 命令输出 %ERRORLEVEL% 结果始终为 1 是何解?
本帖最后由 极品小猫 于 2021-9-6 15:34 编辑
- @echo off
- echo %errorlevel%
- choice.exe /C ab /M "选择处理的字符:"
- echo %errorlevel%
- if %errorlevel%==2 echo N
- if %errorlevel%==1 echo Y
- pause
复制代码
实例代码如上,不管怎么操作,%errorlevel% 最终输出的结果都是 1
作者: cmd1152 时间: 2021-9-1 19:56
- @echo off
- SetLocal EnableDelayedExpansion
- echo %errorlevel%
- choice /C ab /M "选择处理的字符:"
- echo %errorlevel%
- if %errorlevel%==2 echo b
- if %errorlevel%==1 echo a
- pause
复制代码
作者: 极品小猫 时间: 2021-9-2 08:33
回复 极品小猫
没有变量延时,前面要有 SetLocal EnableDelayedExpansion
还要把 %ERRORLEVEL% 改成 !E ...
aries215 发表于 2021-9-1 19:12
当前的案例不需要用到变量延时吧?
作者: 极品小猫 时间: 2021-9-2 08:40
可以变,没问题呀
idwma 发表于 2021-9-1 18:28
理论上这命令是没问题的,但是实际的输出结果却很诡异……
所以才上来求助看会是什么原因影响
作者: Batcher 时间: 2021-9-2 09:15
回复 1# 极品小猫
什么操作系统?我的Win10、Win7无法重现这个问题。
作者: 极品小猫 时间: 2021-9-2 10:11
回复 7# Batcher
WIN7 64,我查看过系统环境变量,没发现什么毛病,就是不知道为什么会出现这种诡异的问题
不想为了这个问题重装系统
现在用这个黑科技方法解决需求:http://www.bathome.net/viewthread.php?tid=41643
不过还是想碰碰运气看看有没有大佬知道我这个是什么原因
作者: cmd1152 时间: 2021-9-4 11:27
因为%errorlevel%在开始就是1了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |