Board logo

标题: [其他] 【已解决】批处理下if else [打印本页]

作者: cyb233    时间: 2019-2-7 00:28     标题: 【已解决】批处理下if else

本帖最后由 cyb233 于 2019-2-11 18:44 编辑

作为一个萌新小白,我最初写了:
  1. if "%a%"=="0" goto :0
  2. if "%a%"=="1" goto :1
  3. if "%a%"=="2" goto :2
  4. if "%a%"=="3" goto :3
  5. if "%a%"=="4" goto :4
  6. if "%a%"=="5" goto :5
  7. if "%a%"=="r" goto :r
  8. if "%a%"=="s" goto :s
  9. if /i "%a%"=="q" goto :end
复制代码
但由于按其他无关按键会导致命令顺序执行,所以我根据网上修改成了如下命令:
  1. if "%a%"=="1" (
  2.         goto :1
  3. )else (
  4.         if "%a%"=="2" (
  5.                 goto :2
  6.         )else (
  7.                 if "%a%"=="3" (
  8.                         goto :3
  9.                 )else (
  10.                         if "%a%"=="4" (
  11.                                 goto :4
  12.                         )else (
  13.                                 if "%a%"=="5" (
  14.                                         goto :5
  15.                                 )else (
  16.                                         if "%a%"=="6" (
  17.                                                 goto :6
  18.                                         )else (
  19.                                                 if "%a%"=="r"(
  20.                                                         goto :r
  21.                                                 )else (
  22.                                                         if "%a%"=="s"
  23.                                                                 goto :s
  24.                                                 )
  25.                                         )
  26.                                 )
  27.                         )
  28.                 )
  29.         )
  30.         exit
  31. )
复制代码
但此时出现了一个问题,无论我按任何按键,命令都会退出,该如何修改?
ps:需要执行的命令仍有选择
作者: 380333722    时间: 2019-2-11 14:13

使用choice命令不是更好吗?

choice /c 012345rsq
if %errorlevel%==9 (goto :end)
if %errorlevel%==8 (goto :s)
if %errorlevel%==7 (goto :r)
if %errorlevel%==6 (goto :5)
if %errorlevel%==5 (goto :4)
if %errorlevel%==4 (goto :3)
if %errorlevel%==3 (goto :2)
if %errorlevel%==2 (goto :1)
if %errorlevel%==1 (goto :0)
作者: cyb233    时间: 2019-2-11 18:43

回复 2# 380333722


    感谢,已解决




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2