Board logo

标题: [代码合集] 批处理一个选项执行所有选项, 怎么处理 [打印本页]

作者: 如你是我    时间: 2024-1-3 16:08     标题: 批处理一个选项执行所有选项, 怎么处理

  1. @echo off
  2. Title DataBase                                             
  3. Color 0A   
  4. :caozuo  
  5. echo.
  6. echo ═══════════════════════════════════════
  7. echo 【数据库操作】:      
  8. echo    1.操作1  
  9. echo    2.操作2
  10. echo    3.操作3
  11. echo    4.操作4   
  12. echo    5.操作5
  13. echo.
  14. set /p n=输入操作号:
  15. if "%n%"=="" cls&goto :caozuo
  16. if "%n%"=="1" call :1
  17. if "%n%"=="2" call :2
  18. if "%n%"=="3" call :3
  19. if "%n%"=="4" call :4
  20. if "%n%"=="5" call :5
  21. if /i "%n%"=="n" exit
  22. pause
  23. goto :eof
  24. :1
  25. echo 删除数据库
  26. goto :caozuo
  27. :2
  28. echo 还原数据库
  29. goto :caozuo
  30. :3
  31. echo 操作3
  32. goto :caozuo
  33. :4
  34. goto 1
  35. goto 3
  36. goto :caozuo
  37. :5
  38. goto 1
  39. goto 2
  40. goto 3
  41. goto :caozuo
复制代码
大概这样,当我选择4的时候 按理来说是执行1 3 然后返回选项
但是实际操作下来 选择4 先执行了13 然后又接着执行了选项5的123

该如何操作呢- -
作者: /zhqsystem/zhq    时间: 2024-1-3 19:19

call是循环项循环未执行完goto也在循环内,如非必要goto直接call调用就好了,注意变量值不能冲突
作者: ShowCode    时间: 2024-1-3 22:20

回复 1# 如你是我
  1. @echo off
  2. :caozuo
  3. echo.
  4. echo ═══════════════════════════════════════
  5. echo 【数据库操作】:
  6. echo    1.操作1
  7. echo    2.操作2
  8. echo    3.操作3
  9. echo    4.操作4
  10. echo    5.操作5
  11. echo.
  12. set /p n=输入操作号:
  13. if "%n%"=="" (
  14.     cls
  15.     goto :caozuo
  16. ) else if "%n%"=="1" (
  17.     call :1
  18. ) else if "%n%"=="2" (
  19.     call :2
  20. ) else if "%n%"=="3" (
  21.     call :3
  22. ) else if "%n%"=="4" (
  23.     call :1
  24.     call :3
  25. ) else if "%n%"=="5" (
  26.     call :1
  27.     call :2
  28.     call :3
  29. ) else if /i "%n%"=="n" (
  30.     exit /b
  31. )
  32. goto :caozuo
  33. :1
  34. echo 删除数据库
  35. goto :eof
  36. :2
  37. echo 还原数据库
  38. goto :eof
  39. :3
  40. echo 操作3
  41. goto :eof
复制代码





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