【发布时间】:2015-06-22 13:17:47
【问题描述】:
如何将以下内容编写为 Windows 批处理文件?
while(x>y && z<x){
// Do something
}
谢谢
【问题讨论】:
-
while loop in batch 的可能重复项
标签: batch-file cmd
如何将以下内容编写为 Windows 批处理文件?
while(x>y && z<x){
// Do something
}
谢谢
【问题讨论】:
标签: batch-file cmd
批处理中没有真正的 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% 访问变量,以强制在运行时进行变量评估在解析时。
【讨论】: