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

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

[复制链接]
发表于 2021-9-1 13:52:26 | 显示全部楼层 |阅读模式
本帖最后由 极品小猫 于 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

发表于 2021-9-1 19:56:37 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2021-9-2 08:33:25 | 显示全部楼层
回复  极品小猫
没有变量延时,前面要有 SetLocal EnableDelayedExpansion
还要把 %ERRORLEVEL% 改成 !E ...
aries215 发表于 2021-9-1 19:12



   当前的案例不需要用到变量延时吧?
 楼主| 发表于 2021-9-2 08:40:31 | 显示全部楼层
可以变,没问题呀
idwma 发表于 2021-9-1 18:28



    理论上这命令是没问题的,但是实际的输出结果却很诡异……
所以才上来求助看会是什么原因影响
发表于 2021-9-2 09:15:08 | 显示全部楼层
回复 1# 极品小猫


    什么操作系统?我的Win10、Win7无法重现这个问题。
 楼主| 发表于 2021-9-2 10:11:21 | 显示全部楼层
回复 7# Batcher

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

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

不过还是想碰碰运气看看有没有大佬知道我这个是什么原因
发表于 2021-9-4 11:27:33 | 显示全部楼层
因为%errorlevel%在开始就是1了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 23:38 , Processed in 0.032273 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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