批处理:替换goto循环

时间:2015-09-08 03:12:16

标签: windows batch-file

当我编写批处理程序时,我倾向于创建一个goto循环来设置和显示事物。

示例:

@echo off & setlocal enabledelayedexpansion
:loop
if !num! GTR !max!
set /a "num=num+1"
echo display!num! = !display%num%!
goto :loop

我有一种感觉,我可以用for循环替换它,但我没有成功创建一个可以取代上面的循环。有谁知道吗?

2 个答案:

答案 0 :(得分:2)

您可以使用for /L循环。

for /L %%A in (!num!,1,!max!) do echo display%%A = !display%%A!

!num!是您的起始号码,!max!是您的结束号码,1表示逐个号码。

答案 1 :(得分:1)

@echo off 
    setlocal enableextensions enabledelayedexpansion

    rem Set limits
    set /a "num=1", "max=10"

    rem Prepare a set of variables to test
    for /l %%a in (%num% 1 %max%) do set "display%%a=!random!"

    rem Show the variables contents
    for /l %%a in (%num% 1 %max%) do echo display%%a=!display%%a!