批处理CHOICE命令无法正常运行,新手寻求技术帮助
嗨,别担心,第一天接触批处理遇到小问题太正常啦!我来帮你看看哪里出了问题~
首先咱们先分析你代码里的两个小问题:
- CHOICE命令的ERRORLEVEL对应关系不对:当你用
CHOICE /C YN时,按Y会返回ERRORLEVEL 1,按N返回ERRORLEVEL 2,但你写的跳转标签是:OPTION-Y和:OPTION-N,所以GOTO OPTION-%ERRORLEVEL%会试图跳到OPTION-1或OPTION-2,这两个标签根本不存在,程序就会出错啦。 - 缺少echo输出文本:你写的
Yes和No两行没有加echo,批处理会把它们当成命令去执行,肯定会报错找不到这个命令哒。
接下来是修正后的完整代码,我给你加上了注释,方便你理解每一步:
@echo off :: 关闭命令本身的回显,让输出更干净 echo Would you like to know the time? (Y/N) CHOICE /C YN /N :: /C指定可选按键Y和N,/N不显示提示里的[Y,N] :: 根据ERRORLEVEL跳转,Y对应1,N对应2 IF ERRORLEVEL 2 GOTO OPTION-N IF ERRORLEVEL 1 GOTO OPTION-Y :OPTION-Y echo Yes echo 当前时间是:%time% goto cont :OPTION-N echo No :cont echo 程序继续执行啦~
这里要注意,IF ERRORLEVEL的判断逻辑是“大于等于”,所以要把数值大的(2)放在前面判断,这样才不会出错。当然你也可以把标签改成:OPTION-1和:OPTION-2,这样GOTO OPTION-%ERRORLEVEL%也能正常工作,但用IF判断的方式对新手来说更直观好记~
再给你补充个小知识点:@echo off可以让你的批处理执行时不显示每条命令本身,只显示你用echo输出的内容,界面会清爽很多哦。
内容的提问来源于stack exchange,提问作者Snoopy135
相关产品推荐
相关产品推荐

