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

[代码合集] 做一个可以多选的菜单,一直报错求大佬苟命

错误 1.此时不应有 4。
2.系统找不到文件 1。

鄙人纯合子小白,求各位大佬指点!
  1. @echo off
  2. set /p str=enter the selected number:  
  3.   
  4. :STR_VISTOR  
  5.   
  6. echo str = %str%  
  7.   
  8. for /f "tokens=1,*" %%a in (%str%) do (  
  9. set /a a=%%a
  10. set str="%%b"
  11. if %a% GTR 4 (
  12. echo nonscript
  13. ) else (
  14. echo script%a%
  15. goto script%a%
  16. )
  17. )
  18. :script1
  19. echo 1
  20. goto STR_VISTOR
  21. :script2
  22. echo 2
  23. goto STR_VISTOR
  24. : script3
  25. echo 3
  26. goto STR_VISTOR
  27. :script4
  28. echo 4
  29. goto STR_VISTOR
  30. :nonscript
  31. echo invalid number %%a
  32. goto STR_VISTOR
复制代码

本帖最后由 happyxxdhaha 于 2019-2-18 13:24 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=
  3. set /p str=enter the selected number:
  4. :STR_VISTOR
  5. if not defined str goto:eof
  6. echo str = %str%
  7. for /f "tokens=1,*" %%a in ("%str%") do (  
  8. set a=%%a
  9. set str=%%b
  10. if !a! GTR 4 (
  11. echo nonscript
  12. goto:nonscript
  13. ) else (
  14. echo script!a!
  15. goto:script!a!
  16. )
  17. )
  18. :script1
  19. echo 1
  20. goto STR_VISTOR
  21. :script2
  22. echo 2
  23. goto STR_VISTOR
  24. :script3
  25. echo 3
  26. goto STR_VISTOR
  27. :script4
  28. echo 4
  29. goto STR_VISTOR
  30. :nonscript
  31. echo invalid number %a%
  32. goto STR_VISTOR
复制代码
1

评分人数

    • guojiaqihs: 感谢给帖子标题标注[已解决]字样技术 + 1
Life is a balance.

TOP

回复 2# happyxxdhaha


    真是非常非常非常感谢大佬了,苟命之恩!

TOP

回复 2# happyxxdhaha

不好意思,我想再请教一下。这个有什么简单的办法跳出循环吗?
    我只能想到每个 script下加一句if "%%b"=="" (echo break loop)

TOP

天资愚钝,只能这样了。虽然ZZ但也算是能用了。
  1. @echo off&setlocal enabledelayedexpansion
  2. echo
  3. set str=
  4. set /p str=enter the selected number:
  5. set str=%str% 999
  6. :STR_VISTOR
  7. if not defined str goto:eof
  8. for /f "tokens=1,*" %%a in ("%str%") do (  
  9. set a=%%a
  10. set str=%%b
  11. if "%%b"=="" (goto:fin)
  12. if !a! GTR 4 (
  13. echo nonscript
  14. goto nonscript
  15. ) else (
  16. echo script!a!
  17. goto script!a!
  18. )
  19. )
  20. :script1
  21. echo 1
  22. goto STR_VISTOR
  23. :script2
  24. echo 2
  25. goto STR_VISTOR
  26. :script3
  27. echo 3
  28. goto STR_VISTOR
  29. :script4
  30. echo 4
  31. goto STR_VISTOR
  32. :nonscript
  33. echo invalid number %a%
  34. goto STR_VISTOR
  35. :fin
  36. echo 233
复制代码

TOP

返回列表