如何在批处理文件中的"If"中使用多个条件?

tum*_*tya 7 if-statement batch-file

我可以在批处理文件if块中使用"或"/"和"指定多个条件吗?

如果不是那么复杂,我至少可以使用类似的东西:

if value1 < value < value2
Run Code Online (Sandbox Code Playgroud)

基本上我的目的是检查当前系统时间是否落在某个时间间隔(确切地说是凌晨2.05和上午7.55),如果确实如此,则执行某些命令.

Eit*_*n T 18

添加到dbenham的答案,您可以使用ifgoto语句的组合来模拟两个逻辑运算符(AND,OR).

测试condition1和codition2:

    if <condition1> if <condition2> goto ResultTrue

:ResultFalse
REM do something for a false result
    goto Done

:ResultTrue
REM do something for a true result

:Done
Run Code Online (Sandbox Code Playgroud)

测试condition1或codition2:

    if <condition1> goto ResultTrue
    if <condition2> goto ResultTrue

:ResultFalse
REM do something for a false result
    goto Done

:ResultTrue
REM do something for a true result

:Done
Run Code Online (Sandbox Code Playgroud)

标签当然是任意的,只要它们是唯一的,您就可以选择它们的名称.


dbe*_*ham 7

批处理中没有逻辑运算符.但是很容易用两个IF语句来模仿AND

if value1 lss value if value lss value2 REM do something
Run Code Online (Sandbox Code Playgroud)

批处理IF语句不知道如何比较时间.批处理IF知道如何比较整数和字符串.

一种选择是将时间转换为午夜后的分钟或秒.

另一种选择是将时间,分钟(以及需要时的秒数)的时间格式设置为每个2位数(根据需要为0前缀).小时应该是24小时格式(军事时间).