Board logo

标题: 请教一个if的用法 [打印本页]

作者: mn960mn     时间: 2009-2-27 23:16    标题: 请教一个if的用法
我想做一个这样的批处理
选择1 就跳转到 A
选择2 就跳转到 B
选择3 就跳转到 C
选择4 就跳转到 D
输入其他的任何东西都 跳转到 end

我是这样写的
@echo off
:start
set /p a=请输入你的号:
if /i "%a%"=="1" goto a
if /i "%a%"=="2" goto b
if /i "%a%"=="3" goto c
if /i "%a%"=="4" goto d

输入其他的任何东西都 跳转到 end
这个怎么写拉

请高手赐教

作者: moniuming     时间: 2009-2-27 23:52
@echo off
Setlocal Enabledelayedexpansion
set n=0
for %%i in (a b c d) do (
set /a n+=1
set _!n!=%%i
)
set /p inpt=请输入你的号(1-4):
for /l %%a in (1 1 4) do (
if "%inpt%"=="%%a" (goto :!_%%a!)
)
goto :end
:a
echo a&pause&goto :eof
:b
echo b&pause&goto :eof
:c
echo c&pause&goto :eof
:d
echo d&pause&goto :eof
:end
echo end&pause&goto :eof

作者: bat-zw     时间: 2009-2-27 23:59
也来一个:

@echo off&setlocal enabledelayedexpansion
set "code= abcd"
set /p input=请输入你的选择(a b c d):
for /l %%a in (1,1,4) do if /i "!code:~%%a,1!" equ "%input%" goto %%a
goto :end
......

作者: mn960mn     时间: 2009-2-28 03:34
谢谢
太谢谢了
虽然我不太看的懂

作者: zhuimu     时间: 2009-2-28 04:51
也学习学习~

作者: skywalker     时间: 2009-2-28 12:30
Originally posted by mn960mn at 2009-2-28 03:34 AM:
谢谢
太谢谢了
虽然我不太看的懂


两条语句都是这样写的,先写好假如是ABCD的情况下的跳转,
如果输入的不是这四个字母,就进入下一条语句:goto end

作者: zh159     时间: 2009-2-28 14:24
上面写得是不是太高深了点
@echo off
:start
set /p input=请输入你的选择(1 2 3 4):
if /i "%input%"=="1" goto a
if /i "%input%"=="2" goto b
if /i "%input%"=="3" goto c
if /i "%input%"=="4" goto d
goto :end
......

作者: yishanju     时间: 2009-2-28 23:00
这样也行吧
找不到1234就goto :eof
echo %a%|findstr /c:"1" /c:"2" /c:"3" /c:"4"||goto :eof

Last edited by yishanju on 2009-2-28 at 23:04 ]

作者: yishanju     时间: 2009-2-28 23:26
@echo off
:start
set /p a=请输入你的号:
if /i "%a%"=="1" (goto a) else (goto e)
if /i "%a%"=="2" (goto b) else (goto e)
if /i "%a%"=="3" (goto c) else (goto e)
if /i "%a%"=="4" (goto d) else (goto e)
goto :eof

:a
echo a
pause
goto :eof

:b
echo b
pause
goto :eof

:e
echo e
pause
goto :eof

作者: netbenton     时间: 2009-3-1 00:47
::这样也可以,但是不知道为什么选择其它的退出时,不见了提示符。
::
@echo off
if "%1"=="选错了" goto :other
set/p in=输入1/2/3
goto :sub%in% &%0 选错了

:sub1
echo 选择1
goto :end

:sub2
echo 选择2
goto :end

:sub3
echo 选择3
goto :end

:other
echo 选择了其它的

:end
echo End
pause
exit/b

作者: netbenton     时间: 2009-3-1 00:53    标题: 学习三楼的
set /p in=请输入你的选择(a b c d):
for %%a in (a,b,c,d) do if /i "in" equ "%%a" goto :sub%%a
goto :end
:suba
...
:subb
...
:subc
...
:subd
...
:end
...

作者: hao789     时间: 2009-3-2 01:21
懂了
懂了

作者: Hanyeguxing     时间: 2009-3-2 11:34
Originally posted by mn960mn at 2009-2-27 23:16:
@echo off
:start
set /p a=请输入你的号:
if /i "%a%"=="1" goto a
if /i "%a%"=="2" goto b
if /i "%a%"=="3" goto c
if /i "%a%"=="4" goto d

输入其他的任何东西都 跳转到 end ...

你把:end标签放到这些if 的后面就可以。
@echo off
:start
set /p a=请输入你的号:
if /i "%a%"=="1" goto a
if /i "%a%"=="2" goto b
if /i "%a%"=="3" goto c
if /i "%a%"=="4" goto d
:end
。。。。
:a
。。。

Last edited by Hanyeguxing on 2009-3-2 at 11:35 ]