中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 13:04
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 请教一个if的用法
可打印版本  982 / 12
第1楼 mn960mn 发表于 2009-02-27 23:16
初级用户 发帖 20 积分 24
请教一个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
这个怎么写拉

请高手赐教
第2楼 moniuming 发表于 2009-02-27 23:52
银牌会员 发帖 574 积分 1,335 来自 广西
第3楼 bat-zw 发表于 2009-02-27 23:59
金牌会员 发帖 1,276 积分 3,105
也来一个:
第4楼 mn960mn 发表于 2009-02-28 03:34
初级用户 发帖 20 积分 24
谢谢
太谢谢了
虽然我不太看的懂
第5楼 zhuimu 发表于 2009-02-28 04:51
新手上路 发帖 1 积分 1
也学习学习~
第6楼 skywalker 发表于 2009-02-28 12:30
初级用户 发帖 26 积分 75
Originally posted by mn960mn at 2009-2-28 03:34 AM:
谢谢
太谢谢了
虽然我不太看的懂


两条语句都是这样写的,先写好假如是ABCD的情况下的跳转,
如果输入的不是这四个字母,就进入下一条语句:goto end
第7楼 zh159 发表于 2009-02-28 14:24
金牌会员 发帖 1,467 积分 3,687
上面写得是不是太高深了点
第8楼 yishanju 发表于 2009-02-28 23:00
银牌会员 发帖 1,357 积分 1,488
这样也行吧
找不到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 ]
第9楼 yishanju 发表于 2009-02-28 23:26
银牌会员 发帖 1,357 积分 1,488
@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
第10楼 netbenton 发表于 2009-03-01 00:47
银牌会员 发帖 752 积分 1,916 来自 广西
::这样也可以,但是不知道为什么选择其它的退出时,不见了提示符。
::
@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
第11楼 netbenton 发表于 2009-03-01 00:53
银牌会员 发帖 752 积分 1,916 来自 广西
学习三楼的
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
...
第12楼 hao789 发表于 2009-03-02 01:21
新手上路 发帖 5 积分 12
懂了
懂了
第13楼 Hanyeguxing 发表于 2009-03-02 11:34
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
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 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023