【问题标题】:While loop with 2 conditions in batch file批处理文件中有两个条件的while循环
【发布时间】:2015-06-22 13:17:47
【问题描述】:

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

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

谢谢

【问题讨论】:

标签: batch-file cmd


【解决方案1】:

批处理中没有真正的 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!。如果是这种情况,你继续。然后你正在检查 if !z!小于 !x!。如果是这种情况,您继续循环的主体。如果其中一个条件被破坏,则脚本会跳出循环并转到 :ENDLOOP 标记下方的代码。 否则它会执行主体并跳回:LOOP。

由于 x、y 和 z 的值会发生变化(否则会出现无限循环),您需要 SETLOCAL EnableDelayedExpansion 并使用 !var! 而不是 %var% 访问变量,以强制在运行时进行变量评估在解析时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 2014-02-13
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多