Windows批处理FOR循环通过命令行的范围

Posted

技术标签:

【中文标题】Windows批处理FOR循环通过命令行的范围【英文标题】:Windows batch FOR loop on range through command line 【发布时间】:2013-03-12 17:33:37 【问题描述】:

我想从命令窗口多次执行一个操作。常识告诉我 FOR 循环应该能够处理这个问题。果然,如果我想执行,比如说myProg.exe,我可以打开一个命令窗口并使用:

C:\> FOR %i in (1 2 3) DO myProg.exe

简单。

但是如果我想执行myProg.exe 1000 次呢?我想在 FOR 循环中指定一个范围,但我不知道如何执行此操作。

直觉上,我似乎应该能够执行以下操作之一:

C:\> FOR %i in (1 to 1000) DO myProg.exe
C:\> FOR %i in (1-1000) DO myProg.exe

但是,这当然行不通。 FOR 循环将列表分别解释为 3 个标记和 1 个标记,因此 myProg.exe 分别只执行了 3 次和 1 次。


批处理文件解决方案

编写某种批处理 (.bat) 文件可能很容易:

SET COUNT=0
:MyLoop
    IF "%COUNT%" == "1000" GOTO EndLoop
    myProg.exe
    SET /A COUNT+=1
    GOTO MyLoop
:EndLoop

但是没有简单的方法可以从命令行执行此操作吗?

【问题讨论】:

Batch script loop的可能重复 谢谢。在发布此之前我无法找到它 - 可能是因为标题。不过,谢谢! 【参考方案1】:

for /l %%i in (1,1,100) do echo %%i

在我工作之前添加另一个 % 符号

【讨论】:

请注意,只有双 % 才能在批处理脚本中正常工作。需要单个 % 才能在命令行上运行。【参考方案2】:

您可以在语句中使用 /l 标记,使其在一组数字中循环。

例如。

C:\> FOR /l %i in (1,1,1000) DO myProg.exe

这表示循环遍历范围,从 1 开始,一次步进 1,直到 1000

http://ss64.com/nt/for_l.html

【讨论】:

以上是关于Windows批处理FOR循环通过命令行的范围的主要内容,如果未能解决你的问题,请参考以下文章

Windows批处理-for命令详解

Windows 批处理:在 FOR 循环中调用多个命令?

循环完成后 FOR 循环恢复执行 - DOS(Windows 命令行)

windows 运维技巧

批处理循环语句 ?

windows批处理学习(for和字符串)---03