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

[已解决]批处理如何过滤除了123的其它任何数字的问题?

求助,

有三个选择项  1  2   3  判断输入的是否为 1   OR 2  OR 3

已过滤特殊符号和字母,判断数字这个不知道怎么写了.请高手帮忙,谢谢 !

补充:我想表达的是, 除了输入1   OR  2  OR 3 程序正常选择,其它的全部过滤.包括,4-9,0.等其它任意数字
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @Echo Off
  2. :Start
  3. Echo (1)吃饭
  4. Echo (2)睡觉
  5. Echo (3)喝水
  6. Set  /P Select=请选择:
  7. If "%Select%" == "1"  Echo 选择的是1
  8. If "%Select%" == "2"  Echo 选择的是2
  9. If "%Select%" == "3"  Echo 选择的是3 Else   Echo 选择错误,请重新选择。&Goto Start
  10. Pause>Nul
复制代码

TOP

If "%Select%" == "1"
请教 以上变量加引号,和 1 加引号是什么意思,谢谢 !

TOP

公子提供的方法不行,输入 1  2  3  以外的数字直接到pause了

TOP

回复 1# disk0


    这个用 choice 实现不行么

choice /c 123

TOP

  1. @echo off
  2. :st
  3. cls&set/p input=input:
  4. for %%a in (1 2 3) do if "%input%"=="%%a" goto :%%a
  5. goto :st
  6. :1
  7. echo This is 1&pause&goto :eof
  8. :2
  9. echo This is 2&pause&goto :eof
  10. :3
  11. echo This is 3&pause&goto :eof
复制代码

TOP

回复 2# 冷玉公子


    如果要使用 else,条件为真的部分要加括号:if 条件 (真) else 假

TOP

apang 发表于 2012-8-6 13:58



    大哥,我想请教下,如果我仅检测输入的 是不是 1 OR 2 OR 3 ,如果不是返回重新输入,如果是继续程序,这个FOR要怎么写,谢谢 !

TOP

apang 发表于 2012-8-6 13:58



    双==号两边的变量 加引号是什么意思,请指点,谢谢 !

TOP

用笨方法搞定了,多谢各位.

TOP

本帖最后由 apang 于 2012-8-6 16:49 编辑
大哥,我想请教下,如果我仅检测输入的 是不是 1 OR 2 OR 3 ,如果不是返回重新输入,如果是继续程序 ...
disk0 发表于 2012-8-6 14:36


是这个意思吗?
  1. @echo off
  2. :st
  3. cls&set/p input=输入(1,2或3):
  4. for %%a in (1 2 3) do (
  5.   if "%input%"=="%%a" echo 继续...&pause&goto :eof
  6. )
  7. goto :st
复制代码
加引号是防止input变量为空(直接回车)时出现语法错误,也表示字符串比较。
1

评分人数

TOP

神啊,送钱一定要送到裤兜里啊。
  1. @Echo Off
  2. :Start
  3. Echo (1)吃饭
  4. Echo (2)睡觉
  5. Echo (3)喝水
  6. Set  /P Select=请选择:
  7. If "%Select%" == "1" Echo 选择的是1
  8. If "%Select%" == "2" Echo 选择的是2
  9. If "%Select%" == "3" (Echo 选择的是3)else (Echo 选择错误,请重新选择。&Cls&Goto Start)
  10. Pause>Nul
复制代码
1

评分人数

TOP

  1. @echo off
  2. title=spring_clover
  3. color 0a
  4. :maeu
  5. echo only one two three
  6. set/p a=please input your choose:
  7. if %a%==1 goto :1
  8. if %a%==2 goto :2
  9. if %a%==3 goto :3
  10. goto :maeu
  11. :1
  12. echo this is one
  13. pause
  14. goto :maeu
  15. :2
  16. echo this is two
  17. pause
  18. goto :maeu
  19. :3
  20. echo this is three
  21. pause
  22. goto :maeu
复制代码
这段代码有欠考虑,你自己再加点东西上去就可以了。

TOP

用嵌套的if else语句就行了:
  1. @Echo Off
  2. :Start
  3. Echo (1)吃饭
  4. Echo (2)睡觉
  5. Echo (3)喝水
  6. Set  /P Select=请选择
  7. if %select%==1 (
  8. echo 1~吃饭
  9. ) else (
  10. if %select%==2 (
  11. echo 2~睡觉
  12. ) else (
  13. if %select%==3 (
  14. echo 3~喝水
  15. ) else echo 你的数不对
  16. )
  17. )
  18. echo 按任意键重来 &pause>nul &goto start
复制代码

TOP

本帖最后由 悬崖之树 于 2012-8-7 21:51 编辑

前面的代码太乱了,看下面的:
  1. @Echo Off
  2. :Start
  3. Echo (1)吃饭
  4. Echo (2)睡觉
  5. Echo (3)喝水
  6. Set  /P Select=请选择
  7. if %select%==1 (echo 1~吃饭) else (if %select%==2 (echo 2~睡觉) else (if %select%==3 (echo 3~喝水) else (echo 你的数不对)))
  8. echo 按任意键重来 &pause>nul &goto start
复制代码

TOP

返回列表