while循环在批处理文件中有2个条件

时间:2015-04-16 08:40:11

标签: batch-file cmd

如何将以下内容编写为Windows批处理文件?

while(x>y && z<x){
 // Do something
}

由于

1 个答案:

答案 0 :(得分:2)

批处理中没有真正的while循环,但您可以使用GOTO语句实现相同的目的:

SETLOCAL EnableDelayedExpansion
:LOOP
IF NOT !x! GTR !y! GOTO ENDLOOP
IF NOT !z! LSS !x! GOTO ENDLOOP
<code>
GOTO LOOP
:ENDLOOP
<more code>

首先你要检查是否!x!大于!y!。如果是这种情况,你继续。然后你正在检查是否!z!不到了!x!。如果是这种情况,你会继续循环体。如果其中一个条件被破坏,则脚本跳出循环并转到:ENDLOOP标记下面的代码。 否则它会执行正文并跳回:LOOP。

当x,y和z的值发生变化时(否则你会有一个无限循环),你需要SETLOCAL EnableDelayedExpansion并使用!var!而不是%var%访问变量来强制在运行时而不是在解析时进行变量评估。