为了账号安全,请及时绑定邮箱和手机立即绑定

DOS批处理中的逻辑运算符(“和”,“或”)

DOS批处理中的逻辑运算符(“和”,“或”)

holdtom 2019-10-15 13:53:23
您将如何在DOS Batch文件中实现逻辑运算符?
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

您可以and使用嵌套条件:


if %age% geq 2 (

    if %age% leq 12 (

        set class=child

    )

)

要么:


if %age% geq 2 if %age% leq 12 set class=child

您可以or使用一个单独的变量:


set res=F

if %hour% leq 6 set res=T

if %hour% geq 22 set res=T

if "%res%"=="T" (

    set state=asleep

)


查看完整回答
反对 回复 2019-10-15
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

该IF语句不支持逻辑运算符(AND和OR),级联IF语句进行隐式连接。


IF Exist File1.Dat IF Exist File2.Dat GOTO FILE12_EXIST_LABEL

如果File1.Dat 和 File1.Dat存在,则跳转标签FILE12_EXIST_LABEL。


查看完整回答
反对 回复 2019-10-15
?
MM们

TA贡献1886条经验 获得超2个赞

德摩根定律允许我们仅使用连词(“与”)和否定(“非”)将析取词(“ OR”)转换为逻辑等价物。这意味着我们可以将析取词(“ OR”)链接到一条线上。


这意味着如果名称是“ Yakko”或“ Wakko”或“ Dot”,则回显“ Warner兄弟姐妹”。


set warner=true

if not "%name%"=="Yakko" if not "%name%"=="Wakko" if not "%name%"=="Dot" set warner=false

if "%warner%"=="true" echo Warner brother or sister

这是paxdiablo的“ OR”示例的另一个版本,但条件链接到一行。(请注意,leqis gtr的反义词与geqis 的反义词lss。)


set res=true

if %hour% gtr 6 if %hour% lss 22 set res=false

if "%res%"=="true" set state=asleep


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 2230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信