[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]在批处理中if 语句如何进行多条件判断?

本帖最后由 qixiaobin0715 于 2020-9-1 06:07 编辑

以前看到有这样表示“与”的条件判断:
if 条件1 if 条件2 ...
那么“或”如何表达?

这样更简洁:
  1. @echo off
  2. set /p str=请输入字母a或b或c:
  3. echo %str%|findstr [a-c]>nul&&echo 你输入的是字母:%str%||if "%str%"=="" (echo 你没有输入任何字符) else echo 你输入的字符不是abc中的任何一个
  4. echo 欢迎再次光临
  5. pause
复制代码

TOP

本帖最后由 qixiaobin0715 于 2020-9-15 10:43 编辑

回复 7# terse

都可以。判断条件后不能退出批处理,跳转到下面的语句继续执行,以下是两个简单的例子:
  1. @echo off
  2. set /p str=请输入字母a或b或c:
  3. if "%str%" == "a" set judge=true&goto abc
  4. if "%str%" == "b" set judge=true&goto abc
  5. if "%str%" == "c" set judge=true&goto abc
  6. :abc
  7. if "%judge%" == "true" (
  8.     echo 你输入的是字母:%str%
  9. ) else (
  10.     echo 你输入的字母不是abc中的任何一个
  11. )
  12. echo 欢迎再次光临
  13. pause
复制代码
  1. @echo off
  2. set /p str=请输入字母a或b或c:
  3. if "%str%" == "a" goto abc
  4. if "%str%" == "b" goto abc
  5. if "%str%" == "c" goto abc
  6. echo 你输入的字母不是abc中的任何一个
  7. goto cba
  8. :abc
  9. echo 你输入的是字母:%str%
  10. :cba
  11. echo 欢迎再次光临
  12. pause
复制代码
用if...else逻辑性要强一些,个人习惯而已!
谢谢!!!

TOP

回复  wujunkai
老大,这样应当可以吧:
qixiaobin0715 发表于 2020-9-14 12:51


那还不如
  1. if 条件1 goto abc
  2. if 条件2 goto abc
  3. if 条件3 goto abc
  4. ...
  5. if 条件n goto abc
  6. goto :eof
  7. :abc
  8. ...
复制代码
直接这样呢

TOP

本帖最后由 qixiaobin0715 于 2020-9-14 14:10 编辑

回复 2# wujunkai
老大,这样应当可以吧:
  1. set judge=false
  2. if 条件1 set judge=true&goto abc
  3. if 条件2 set judge=true&goto abc
  4. if 条件3 set judge=true&goto abc
  5. ...
  6. if 条件n set judge=true&goto abc
  7. :abc
  8. if "%judge%"=="true" ...
复制代码

TOP

回复 2# wujunkai

用"||"连接if语句好像不行,判断语句不属于命令,所以我的想法不成立。

TOP

回复 2# wujunkai

如果条件较多,这样的话效率应当高一些:
  1. set judge=false
  2. if 条件1 set judge=true || if 条件2 set judge=true || if 条件3 set judge=true ...
  3. if "%judge%"=="true" ...
复制代码
2

评分人数

TOP


原来可以这样写,见识了,谢谢!!!

TOP

  1. set judge=false
  2. if 条件1 set judge=true
  3. if 条件2 set judge=true
  4. if "%judge%"=="true" ...
复制代码
应该只能这样了。。。

TOP

返回列表