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循环通过命令行的范围的主要内容,如果未能解决你的问题,请参考以下文章