![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 12:26 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何在if语句的条件里实现逻辑或? |
| 可打印版本 3,610 / 8 |
| 第1楼 xintian | 发表于 2007-06-27 15:31 |
| 新手上路 发帖 5 积分 12 | |
|
如何在if语句的条件里实现逻辑或? 请问如何实现 if ("str1"=="str2" or "str3"=="str4") (command)的功能
我正在写一个批处理,如果能实现上面的用法,代码会简单很多,并且易读性更好 如果是and ,可以简单地用嵌套,换成or好像不大好实现 另外,大家也可考虑下,如果是xor呢 |
|
| 第2楼 xintian | 发表于 2007-06-27 15:43 |
| 新手上路 发帖 5 积分 12 | |
|
补充:
我不知道if语句是否支持逻辑运算符,如果支持当然最好,上面的问题自然很好解决。 如果不支持,我目前的办法是用 if "str1"=="str2" (command) else (if "str3"=="str4" (command)) 但是这样写的话,如果(command)段代码很多,就会重复很多 不知有没有什么更好的办法? |
|
| 第3楼 zasxcdfv | 发表于 2007-06-27 15:45 |
| 初级用户 发帖 75 积分 152 | |
|
可以的呀。批处理的if语句也可以用else的。或者也可以用||,虽然我个人不太喜欢这玩意……
详见if/? 看了你二楼的内容,我想应该可以用if嵌套实现吧。 |
|
| 第4楼 xintian | 发表于 2007-06-27 15:58 |
| 新手上路 发帖 5 积分 12 | |
|
是这样吗?
if ("str1"=="str2" || "str3"=="str4") (command) 但是系统提示 "此时不应有 ||" |
|
| 第5楼 xintian | 发表于 2007-06-27 16:01 |
| 新手上路 发帖 5 积分 12 | |
|
而且if/?里也没有提到||
|
|
| 第6楼 zasxcdfv | 发表于 2007-06-27 16:03 |
| 初级用户 发帖 75 积分 152 | |
|
if else 不能解决问题吗?||等待高手讲解……我还迷糊
刚才的程序理解错了~ [ Last edited by zasxcdfv on 2007-6-27 at 04:05 PM ] |
|
| 第7楼 xintian | 发表于 2007-06-27 16:04 |
| 新手上路 发帖 5 积分 12 | |
|
还是提示 "此时不应有 ||。"
[ Last edited by xintian on 2007-6-27 at 04:06 PM ] |
|
| 第8楼 caruko | 发表于 2011-01-24 17:07 |
| 新手上路 发帖 3 积分 3 | |
|
可以用 set /a 的逻辑或来计算
比如 if "str1"=="str2" set /a m=1 if "str3"=="str4" set /a n=1 set /a x=m "|" n if %x% EQU 1 command |
|
| 第9楼 Hanyeguxing | 发表于 2011-01-24 19:18 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
if "str1"=="str2" set m==
if "str3"=="str4" set m== if defined m command |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |