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

[其他] 求助,本人刚学cmd,写了一个小case,请教各位大虾

  1. @echo off
  2. color a
  3. echo 本程序判断输入的是A还是B,按O键退出程序。
  4. :D
  5. set /p input=请输入字母A或B或者输入O退出:
  6. if "%input%"=="A" goto A
  7. if "%input%"=="B" goto B
  8. if "%input%"=="O" goto C
  9. if "%input%"=="" goto D
  10. echo 您输入了错误的字符,请重新输入,ps:CMD是区分大小写的哦\(^o^)/~
  11. goto D
  12. :A
  13. echo 您输入的字母是A
  14. ping -n 2 127.0.0.1>null
  15. goto D
  16. :B
  17. echo 您输入的字母是B
  18. ping -n 2 127.0.0.1>null
  19. goto D
  20. :C
  21. echo 您选择了退出,将在3秒钟后退出本程序。
  22. ping -n 3 127.1>null
  23. del null
  24. exit
复制代码
但是在输入了A或者B以后,出现提示信息再次输入A或者B时,直接敲回车,显示的却是上次的结果。。
[attach]4337[/attach]
求解?(难道cmd默认为输入回车是输入的上一次的命令?)
M_値覺

原因是:
变量%input%没被清空
加这条代码:
  1. set input=
复制代码
清空%input%变量

代码变成:
  1. @echo off
  2. color a
  3. echo 本程序判断输入的是A还是B,按O键退出程序。
  4. :D
  5. set input=
  6. set /p input=请输入字母A或B或者输入O退出:
  7. if "%input%"=="A" goto A
  8. if "%input%"=="B" goto B
  9. if "%input%"=="O" goto C
  10. if "%input%"=="" goto D
  11. echo 您输入了错误的字符,请重新输入,ps:CMD是区分大小写的哦\(^o^)/~
  12. goto D
  13. :A
  14. echo 您输入的字母是A
  15. ping -n 2 127.0.0.1>null
  16. goto D
  17. :B
  18. echo 您输入的字母是B
  19. ping -n 2 127.0.0.1>null
  20. goto D
  21. :C
  22. echo 您选择了退出,将在3秒钟后退出本程序。
  23. ping -n 3 127.1>null
  24. del null
  25. exit
复制代码
运行显示:
  1. 本程序判断输入的是A还是B,按O键退出程序。
  2. 请输入字母A或B或者输入O退出:A
  3. 您输入的字母是A
  4. 请输入字母A或B或者输入O退出:
  5. 请输入字母A或B或者输入O退出:
复制代码

TOP

回复 2# garyng


    正解,谢谢了。。。。
M_値覺

TOP

回复 3# bao4541110


哈哈~
不客气~
我也是新手~

TOP

回复 1# bao4541110
  1. if /I "%input%"=="A" goto A
复制代码
加/I参数就不区分大小写了.
学习...

TOP

本帖最后由 cjiabing 于 2011-8-26 16:31 编辑

请认真阅读论坛相关规则,修改标题。
本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块;
2、标题模糊(未说明代码功能或问题所在)的帖子一律关闭;
3、请使用[ code]和[ /code]标记把代码部分首尾括起来,以便他人复制;
4、求助时,务必在顶楼一次性把问题交代清楚,并给出测试数据;
5、问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表