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

[文件操作] 批处理输入特殊字符goto异常问题出在哪里?

新人报到,请各位大神多指教问题出在哪里
  1. @echo off
  2. :MENU
  3. cls
  4. color 0a
  5. set Status=
  6. type C:\Users\asus\Desktop\Ontune_Check.txt | findstr "陈宝宝" > null && set Status=Ontune Sms Is Open || set Status=Ontune Sms Is Stop
  7. echo.        %Status%                                       
  8. echo.=-=-=-=-=-Action Options-=-=-=-=-=
  9. echo.+                                +  
  10. echo.+     1.  Ontune Sms Start       +  
  11. echo.+                                +  
  12. echo.+     2.  Ontune Sms Stop        +  
  13. echo.+                                +  
  14. echo.+     3.        Exit             +   
  15. echo.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==
  16. echo.   
  17. set /p id=Please Enter Options:
  18. if "%id%"=="1" ( goto START ) else ( if "%id%"=="2" ( goto STOP ) else ( if "%id%"=="3" ( goto EXIT ) else (if "%id%" == "0" (echo You entered the wrong option please re-enter!!! & pause > null & goto MENU) else (if "%id%" gtr "4" (echo You entered the wrong option please re-enter!!! & pause> null & goto MENU) else (if "%id%" equ "" (echo You entered the wrong option please re-enter!!! & pause > null & goto MENU))))))
  19. :START
  20. copy C:\Users\asus\Desktop\Ontune_Check1.txt C:\Users\asus\Desktop\Ontune_Check.txt
  21. net stop QQMicroGameBoxService
  22. net start QQMicroGameBoxService
  23. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  24. echo.      Ontune Sms Is Open
  25. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  26. echo Press any key to exit & pause > null
  27. exit
  28. :STOP
  29. copy C:\Users\asus\Desktop\Ontune_Check2.txt C:\Users\asus\Desktop\Ontune_Check.txt
  30. net stop QQMicroGameBoxService
  31. net start QQMicroGameBoxService
  32. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  33. echo.      Ontune Sms Is Stop
  34. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  35. echo Press any key to exit & pause > null
  36. exit
  37. :EXIT
  38. exit
复制代码
上面测试内容,当输入特殊的字符特殊符号如“*”、“.”、“/”等,都会自动goto :START,请大神们指正下,小白不胜感激!!!

本帖最后由 yhcfsr 于 2018-11-17 11:14 编辑


  • 现在的小白怎么这么厉害了,真是可怕。下面我胡说八道几句。
  • 1.所有的SET语句(含SET /P),都要加双引号;所有路径都要加双引号;虽然这个脚本您不加也没错.
  • 2.条件分支,既然都是goto,完全没必要用ELSE,可以这样,整洁明了:
    1. if xxx goto yyy
    2. if aaa goto bbb
    3. ...............
    复制代码
  • 3.EXIT标签,完全没有存在的必要,直接EXIT不更好?GOTO也是需要时间的,虽然这里可以忽略不计,但养成好的习惯,用最高效的算法对以后处理大数据很重要.
  • 4.代码要放在代码框里
QQ 33892006

TOP

本帖最后由 lifei259 于 2018-11-18 09:23 编辑
  1. @echo off&color 0a
  2. :MENU
  3. set Status=
  4. set "check=C:\Users\asus\Desktop\Ontune_Check.txt"
  5. type %check% | findstr "陈宝宝" > nul && set Status=Ontune Sms Is Open || set Status=Ontune Sms Is Stop
  6. echo.        %Status%                                       
  7. echo.=-=-=-=-=-Action Options-=-=-=-=-=
  8. echo.+                                +  
  9. echo.+     1.  Ontune Sms Start       +  
  10. echo.+                                +  
  11. echo.+     2.  Ontune Sms Stop        +  
  12. echo.+                                +  
  13. echo.+     3.        Exit             +   
  14. echo.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==
  15. echo.   
  16. set /p id=Please Enter Options:
  17. if "%id%"=="1"  goto START
  18. if "%id%"=="2"  goto STOP
  19. if "%id%"=="3"  EXIT
  20. echo,You entered the wrong option please re-enter!!! & pause > nul
  21. cls&goto MENU
  22. :START
  23. copy /y C:\Users\asus\Desktop\Ontune_Check1.txt %check%
  24. net stop QQMicroGameBoxService
  25. net start QQMicroGameBoxService
  26. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  27. echo.      Ontune Sms Is Open
  28. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  29. echo Press any key to exit & pause > nul
  30. exit
  31. :STOP
  32. copy /y C:\Users\asus\Desktop\Ontune_Check2.txt %check%
  33. net stop QQMicroGameBoxService
  34. net start QQMicroGameBoxService
  35. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  36. echo.      Ontune Sms Is Stop
  37. echo.=-=-=-=-==-=-==-==-=-=-=-=-=-=
  38. echo Press any key to exit & pause > nul
  39. exit
复制代码
智慧是,利用最简单的代码替代复杂事情的处理过程。
付款请扫头像二维码码,谢谢

TOP

回复 3# lifei259
好的,谢谢大神指正!

TOP

返回列表