如何简化批处理choice选择后跳转至对应函数的代码?
简化批处理选择跳转的方案
直接利用变量值拼接跳转标签,省去逐个判断的冗余代码:
@echo off setlocal enabledelayedexpansion set "choices= ABCDEFGHIJKLMNOPQRSTUVWXYZ" choice /n /c %choices:~1% /m "Select Task Option: " set "choice=!choices:~%errorlevel%,1!" :: 直接跳转到对应标签,无需写一堆IF判断 goto :%choice% :: 以下是对应功能块示例,按需替换成你的实际逻辑 :A echo 执行A任务 goto :end :B echo 执行B任务 goto :end :C echo 执行C任务 goto :end :end endlocal
关键注意点
- 确保功能块的标签(
:A、:B这类)和选择的字母严格对应,大小写一致 - 必须开启
enabledelayedexpansion,否则!choices:~%errorlevel%,1!无法正确解析变量 - 统一设置
:end标签,避免执行完目标功能块后继续执行其他代码块
内容的提问来源于stack exchange,提问作者VB88
相关产品推荐
相关产品推荐

