在批处理脚本中没有直接的while
语句,但是可以通过使用if
语句和标签来很容易地实现这个循环。
下图显示了此循环的图解说明。
实现的第一部分是设置将用于控制if
条件的评估的计数器。 然后我们定义标签,它将用来体现while
循环实现的整个代码。 if
条件评估表达式。 如果表达式的值为true
,则代码块将被执行。 如果条件评估为false
,则循环退出。 当代码块被执行时,它将返回到标签语句再次执行。
以下是while
语句的一般实现的语法。
Set counters
:label
If (expression) (
Do_something
Increment counter
Go back to :label
)
while
实现的完整代码放置在标签内。counter
变量必须在while
循环实现开始之前设置或初始化。while
条件的表达式使用if
语句完成。 如果表达式的值为true
,那么执行if
循环内的相关代码。- 计数器需要在
if
语句中正确增加,以便while
实现可以在某个时间点终止。 - 最后将回到标签,以便再次评估
if
语句。
以下是一个while
循环语句的例子。
@echo off
SET /A "index=1"
SET /A "count=5"
:while
if %index% leq %count% (
echo The value of index is %index%
SET /A "index=index + 1"
goto :while
)
在上面的例子中,首先将索引整型变量的值初始化为1
。在if
循环中的条件是正在评估表达式的条件,该index
应该小于count
变量。 在index
的值小于5
之前打印并增加它的值。
以上命令产生以下输出。
The value of index is 1
The value of index is 2
The value of index is 3
The value of index is 4
The value of index is 5