You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Batch脚本choice命令选中单选项却连续执行多个分支问题求助

问题原因
  • 核心原因是Batch脚本的顺序执行特性:你跳转到:ONE分支执行完所有代码后,没有设置跳转或退出逻辑,脚本会自动按行继续执行后续的:TWO分支代码,不会自动停止。
  • 次要问题:你当前的ERRORLEVEL判断语法不规范,也可能引发判断逻辑异常。Batch中IF ERRORLEVEL N的默认规则是「ERRORLEVEL值大于等于N时条件成立」,所以如果要按从小到大的顺序判断,需要用变量取值比较%ERRORLEVEL%,如果用默认语法则需要从大到小倒序写判断条件。
修复方案
  1. 每个选项分支执行完毕后添加GOTO EXIT跳出,脚本末尾新增:EXIT标签终止流程,或者直接添加exit /b退出脚本即可。
  2. 修正ERRORLEVEL判断语法。
修正后的代码示例
@echo off
echo 电源计划锁定工具
echo 作者 hummingrofl560
echo 请选择你要执行的操作:
echo ==================================
echo 1. 无电源计划锁定 - 更改计划前请选择此项,同时允许自定义计划参数
echo 2. 节能模式 - 尽可能降低电脑性能以减少能耗
echo 3. 平衡/自动(默认) - 支持的硬件上自动平衡性能与能耗
echo 4. 高性能 - 优先保障性能,能耗更高
echo 5. 安静模式 - 降低性能以减少风扇噪音
choice /N /C:12345 /M "请输入选项编号:"
IF %ERRORLEVEL% ==1 GOTO ONE
IF %ERRORLEVEL% ==2 GOTO TWO
IF %ERRORLEVEL% ==3 GOTO THREE
IF %ERRORLEVEL% ==4 GOTO FOUR
IF %ERRORLEVEL% ==5 GOTO FIVE

:ONE
echo 正在关闭电源计划锁定
c:\powerplans\Default_no_specified_power_plan.reg
echo 电源计划锁定已关闭
echo 更改需要重启电脑后生效
pause
GOTO EXIT

:TWO
echo 正在锁定为「平衡/自动」模式
c:\powerplans\Specify_Automatic_power_plan.reg
echo 电源计划已锁定为「平衡/自动」
echo 更改需要重启电脑后生效
pause
GOTO EXIT

:THREE
REM 此处补全第三个选项的对应逻辑
GOTO EXIT

:FOUR
REM 此处补全第四个选项的对应逻辑
GOTO EXIT

:FIVE
REM 此处补全第五个选项的对应逻辑
GOTO EXIT

:EXIT

内容的提问来源于stack exchange,提问作者hummingrofl860

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:06:00