FOR / L语法解释

时间:2014-04-24 19:05:31

标签: batch-file for-loop cmd

我有一个if循环,它将显示LOOPMAX之前的所有值。我的问题是我希望以FOR / L结构的形式输出相同的输出。我有点困惑,我想知道是否可以这样做。

SET LOOPMAX=6

IF %count% GTR %LOOPMAX% GOTO END
    ECHO. %test%
SET /A COUNT=%count%+1
GOTO BEGINLOOP
:END

因此,如果LOOPMAX设置为6而不是输出:

01 test
02 test
03 test
04 test
05 test
06 test

我需要来自FOR / L的确切输出。

非常感谢任何帮助,谢谢你。

2 个答案:

答案 0 :(得分:1)

@echo off
setlocal EnableDelayedExpansion

set count=100
for /L %%i in (1,1,%loopmax%) do (
   set /A count+=1
   echo !count:~-2! test
)

编辑回复评论

如果你想要那个"值不是全部测试,并且有些不同,比如说01 01,02 2,03 3",那么你必须提前准备所需的值,然后使用用于在echo命令中选择适当值的索引。可以使用数组实现此管理:

@echo off
setlocal EnableDelayedExpansion

rem Create the array of number names
set i=0
for %%a in (one two three four five six) do (
   set /A i+=1
   set number[!i!]=%%a
)

set loopmax=6

rem Show two-digits numbers and number names
set count=100
for /L %%i in (1,1,%loopmax%) do (
   set /A count+=1
   echo !count:~-2! !number[%%i]!
)

输出:

01 one
02 two
03 three
04 four
05 five
06 six

您可以在this post查看有关阵列管理的详细说明。

答案 1 :(得分:0)

setlocal enabledelayedexpansion
for /l %%i in (1,1,%loopmax%) do (
set t=00%%i
echo !t:~-2! test
)