[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[代码合集] 批处理一个选项执行所有选项, 怎么处理

  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

该如何操作呢- -

call是循环项循环未执行完goto也在循环内,如非必要goto直接call调用就好了,注意变量值不能冲突
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 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
复制代码
测试代码之前请做好备份

TOP

返回列表