标题: [已解决]批处理如何过滤除了123的其它任何数字的问题? [打印本页]
作者: disk0 时间: 2012-8-6 12:48 标题: [已解决]批处理如何过滤除了123的其它任何数字的问题?
求助,
有三个选择项 1 2 3 判断输入的是否为 1 OR 2 OR 3
已过滤特殊符号和字母,判断数字这个不知道怎么写了.请高手帮忙,谢谢 !
补充:我想表达的是, 除了输入1 OR 2 OR 3 程序正常选择,其它的全部过滤.包括,4-9,0.等其它任意数字
作者: 冷玉公子 时间: 2012-8-6 13:04
- @Echo Off
- :Start
- Echo (1)吃饭
- Echo (2)睡觉
- Echo (3)喝水
- Set /P Select=请选择:
- If "%Select%" == "1" Echo 选择的是1
- If "%Select%" == "2" Echo 选择的是2
- If "%Select%" == "3" Echo 选择的是3 Else Echo 选择错误,请重新选择。&Goto Start
- Pause>Nul
复制代码
作者: disk0 时间: 2012-8-6 13:17
If "%Select%" == "1"
请教 以上变量加引号,和 1 加引号是什么意思,谢谢 !
作者: disk0 时间: 2012-8-6 13:25
公子提供的方法不行,输入 1 2 3 以外的数字直接到pause了
作者: Pale_Cheung 时间: 2012-8-6 13:46
回复 1# disk0
这个用 choice 实现不行么
choice /c 123
作者: apang 时间: 2012-8-6 13:58
- @echo off
- :st
- cls&set/p input=input:
- for %%a in (1 2 3) do if "%input%"=="%%a" goto :%%a
- goto :st
- :1
- echo This is 1&pause&goto :eof
- :2
- echo This is 2&pause&goto :eof
- :3
- echo This is 3&pause&goto :eof
复制代码
作者: CrLf 时间: 2012-8-6 14:01
回复 2# 冷玉公子
如果要使用 else,条件为真的部分要加括号:if 条件 (真) else 假
作者: disk0 时间: 2012-8-6 14:36
apang 发表于 2012-8-6 13:58
大哥,我想请教下,如果我仅检测输入的 是不是 1 OR 2 OR 3 ,如果不是返回重新输入,如果是继续程序,这个FOR要怎么写,谢谢 !
作者: disk0 时间: 2012-8-6 14:37
apang 发表于 2012-8-6 13:58
双==号两边的变量 加引号是什么意思,请指点,谢谢 !
作者: disk0 时间: 2012-8-6 15:19
用笨方法搞定了,多谢各位.
作者: apang 时间: 2012-8-6 16:43
本帖最后由 apang 于 2012-8-6 16:49 编辑
大哥,我想请教下,如果我仅检测输入的 是不是 1 OR 2 OR 3 ,如果不是返回重新输入,如果是继续程序 ...
disk0 发表于 2012-8-6 14:36
是这个意思吗?- @echo off
- :st
- cls&set/p input=输入(1,2或3):
- for %%a in (1 2 3) do (
- if "%input%"=="%%a" echo 继续...&pause&goto :eof
- )
- goto :st
复制代码
加引号是防止input变量为空(直接回车)时出现语法错误,也表示字符串比较。
作者: 冷玉公子 时间: 2012-8-6 16:52
神啊,送钱一定要送到裤兜里啊。- @Echo Off
- :Start
- Echo (1)吃饭
- Echo (2)睡觉
- Echo (3)喝水
- Set /P Select=请选择:
- If "%Select%" == "1" Echo 选择的是1
- If "%Select%" == "2" Echo 选择的是2
- If "%Select%" == "3" (Echo 选择的是3)else (Echo 选择错误,请重新选择。&Cls&Goto Start)
- Pause>Nul
复制代码
作者: 苦涩的回忆 时间: 2012-8-6 19:53
- @echo off
- title=spring_clover
- color 0a
- :maeu
- echo only one two three
- set/p a=please input your choose:
- if %a%==1 goto :1
- if %a%==2 goto :2
- if %a%==3 goto :3
- goto :maeu
- :1
- echo this is one
- pause
- goto :maeu
- :2
- echo this is two
- pause
- goto :maeu
- :3
- echo this is three
- pause
- goto :maeu
复制代码
这段代码有欠考虑,你自己再加点东西上去就可以了。
作者: 悬崖之树 时间: 2012-8-7 21:45
用嵌套的if else语句就行了:- @Echo Off
- :Start
- Echo (1)吃饭
- Echo (2)睡觉
- Echo (3)喝水
- Set /P Select=请选择
- if %select%==1 (
- echo 1~吃饭
- ) else (
- if %select%==2 (
- echo 2~睡觉
- ) else (
- if %select%==3 (
- echo 3~喝水
- ) else echo 你的数不对
- )
- )
- echo 按任意键重来 &pause>nul &goto start
复制代码
作者: 悬崖之树 时间: 2012-8-7 21:45
本帖最后由 悬崖之树 于 2012-8-7 21:51 编辑
前面的代码太乱了,看下面的:- @Echo Off
- :Start
- Echo (1)吃饭
- Echo (2)睡觉
- Echo (3)喝水
- Set /P Select=请选择
- if %select%==1 (echo 1~吃饭) else (if %select%==2 (echo 2~睡觉) else (if %select%==3 (echo 3~喝水) else (echo 你的数不对)))
- echo 按任意键重来 &pause>nul &goto start
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |