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 ]