下面是自已写的一个练习,这个练习在测试时发现如下的问题,- @echo off
- echo 选项:1.A 2.B 3.C 4.D 5.E
- echo.
- :loop
- set /p input=请输入你的选项并回车确认:
- if %input% lss 6 (goto %input%) else (echo 你的输入不合要求请重新选择! &goto loop)
- :1
- echo abx.....
- pause
- goto :eof
- :2
- echo jki....
- pause
- goto :eof
- :3
- echo qwe....
- pause
- goto :eof
- :4
- echo 123....
- pause
- goto :eof
- :5
- echo 789....
- pause
- goto :eof
复制代码 当用户输入标点符号或是数字0或是其它的时候,goto %input% 由于找不到跳转标记,则批处就会自己退出了。
为了更好的过滤if语句的判断条件,于是我把上例修改变成下面的- @echo off
- echo 选项:1.A 2.B 3.C 4.D 5.E
- echo.
- :loop
- set /p input=请输入你的选项并回车确认:
- if %input%==1 (goto %input%)
- if %input%==2 (goto %input%)
- if %input%==3 (goto %input%)
- if %input%==4 (goto %input%)
- if %input%==5 (goto %input%)
- echo 你的输入不合要求请重新选择!
- goto loop
- :1
- echo abx.....
- pause
- goto :eof
- :2
- echo jki....
- pause
- goto :eof
- :3
- echo qwe....
- pause
- goto :eof
- :4
- echo 123....
- pause
- goto :eof
- :5
- echo 789....
- pause
- goto :eof
复制代码 这样改的话是可以过滤if语句的判断条件了,但问题又来了,如果上例中的“选项”有N个,
那么,if %input%==* (goto %input%) 这一语句不就是要写上N条?
有没有其它高效一点的写法?
在此诚心求教如何解决这问题!
[ 本帖最后由 januapr 于 2009-8-4 21:22 编辑 ] |