标题: [其他] [已解决]在批处理中if 语句如何进行多条件判断? [打印本页]
作者: qixiaobin0715 时间: 2020-8-31 21:34 标题: [已解决]在批处理中if 语句如何进行多条件判断?
本帖最后由 qixiaobin0715 于 2020-9-1 06:07 编辑
以前看到有这样表示“与”的条件判断:
if 条件1 if 条件2 ...
那么“或”如何表达?
作者: wujunkai 时间: 2020-8-31 22:04
- set judge=false
- if 条件1 set judge=true
- if 条件2 set judge=true
- if "%judge%"=="true" ...
复制代码
应该只能这样了。。。
作者: qixiaobin0715 时间: 2020-9-1 06:04
原来可以这样写,见识了,谢谢!!!
作者: qixiaobin0715 时间: 2020-9-1 09:29
回复 2# wujunkai
如果条件较多,这样的话效率应当高一些:- set judge=false
- if 条件1 set judge=true || if 条件2 set judge=true || if 条件3 set judge=true ...
- if "%judge%"=="true" ...
复制代码
作者: qixiaobin0715 时间: 2020-9-1 11:53
回复 2# wujunkai
用"||"连接if语句好像不行,判断语句不属于命令,所以我的想法不成立。
作者: qixiaobin0715 时间: 2020-9-14 12:51
本帖最后由 qixiaobin0715 于 2020-9-14 14:10 编辑
回复 2# wujunkai
老大,这样应当可以吧:- set judge=false
- if 条件1 set judge=true&goto abc
- if 条件2 set judge=true&goto abc
- if 条件3 set judge=true&goto abc
- ...
- if 条件n set judge=true&goto abc
- :abc
- if "%judge%"=="true" ...
复制代码
作者: terse 时间: 2020-9-14 18:53
回复 wujunkai
老大,这样应当可以吧:
qixiaobin0715 发表于 2020-9-14 12:51
那还不如- if 条件1 goto abc
- if 条件2 goto abc
- if 条件3 goto abc
- ...
- if 条件n goto abc
- goto :eof
- :abc
- ...
复制代码
直接这样呢
作者: qixiaobin0715 时间: 2020-9-15 08:56
本帖最后由 qixiaobin0715 于 2020-9-15 10:43 编辑
回复 7# terse
都可以。判断条件后不能退出批处理,跳转到下面的语句继续执行,以下是两个简单的例子:- @echo off
- set /p str=请输入字母a或b或c:
- if "%str%" == "a" set judge=true&goto abc
- if "%str%" == "b" set judge=true&goto abc
- if "%str%" == "c" set judge=true&goto abc
- :abc
- if "%judge%" == "true" (
- echo 你输入的是字母:%str%
- ) else (
- echo 你输入的字母不是abc中的任何一个
- )
- echo 欢迎再次光临
- pause
复制代码
- @echo off
- set /p str=请输入字母a或b或c:
- if "%str%" == "a" goto abc
- if "%str%" == "b" goto abc
- if "%str%" == "c" goto abc
- echo 你输入的字母不是abc中的任何一个
- goto cba
- :abc
- echo 你输入的是字母:%str%
- :cba
- echo 欢迎再次光临
- pause
复制代码
用if...else逻辑性要强一些,个人习惯而已!
谢谢!!!
作者: qixiaobin0715 时间: 2021-1-4 09:31
这样更简洁:- @echo off
- set /p str=请输入字母a或b或c:
- echo %str%|findstr [a-c]>nul&&echo 你输入的是字母:%str%||if "%str%"=="" (echo 你没有输入任何字符) else echo 你输入的字符不是abc中的任何一个
- echo 欢迎再次光临
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |