中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-04 20:54
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » IF判断的问题 查看 762 回复 5
楼 主 IF判断的问题 发表于 2008-10-10 13:28 ·  中国 天津 联通
初级用户
积分 41
发帖 28
注册 2008-08-19 13:19
17年会员
UID 123578
性别 男
状态 离线
我想写一个IF的判断,但不知道具体的写法:主要思路是,IF a=1或a=2.....,有N个条件,执行第一个命令,IF a=A或a=B 就执行另一个命令,就是这个“或”怎么表达呢?
2 发表于 2008-10-10 13:34 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set /p a=a是什么?
if "%a%" equ "1" (
echo 执行第一个命令
) else if "%a%" equ "2" (
echo 执行第一个命令
) else if "%a%" equ "A" (
echo 执行第二个命令
) else if "%a%" equ "B" (
echo 执行第二个命令
)
pause
3 发表于 2008-10-10 13:38 ·  中国 天津 联通
初级用户
积分 41
发帖 28
注册 2008-08-19 13:19
17年会员
UID 123578
性别 男
状态 离线
谢谢版主的的回答,这样的写法是可行的,但问题是如果这样写的话,我的判断有N多个,我会写N多个else if, 要执行的命令只有两个,可不可以像有的可以用“or”命令的那种行式呢?if a=1 or a=2这样的???
4 发表于 2008-10-10 13:44 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
批处理中的if没有or的用法
5 发表于 2008-10-10 14:19 ·  中国 广东 广州 鹏博士宽带
新手上路
积分 5
发帖 2
注册 2008-10-10 14:09
17年会员
UID 127988
性别 男
状态 离线
@echo off
set /p a=请输入一个值:
for %%i in (1,2,3) do (
if %%i equ %a% goto a
)
for %%j in (a,b,c) do (
if %%j equ %a% goto b
)
goto end
:a
echo 命令1
goto end
:b
echo 命令2
:end
pause
6 发表于 2008-10-10 17:17 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
请楼主参阅以下代码:

@echo off
set "code=1#a 2#b 3#c 4#d 5#e"
set /p str=请输入1-5间的数或a-e间的字母:
for %%a in (%code%) do (
for /f "tokens=1,2 delims=#" %%i in ("%%a") do (
if "%str%" equ "%%i" goto a
if /i "%str%" equ "%%j" goto b
)
)
echo 错误输入!
pause>nul&goto :eof
:a
echo 你选择的是a选项!
pause>nul&goto :eof
:b
echo 你选择的是b选项!
pause>nul


[ Last edited by bat-zw on 2008-10-10 at 17:22 ]
批处理之家新域名:www.bathome.net
论坛跳转: