Windows批处理命令行中的FOR循环范围。

14 浏览
0 Comments

Windows批处理命令行中的FOR循环范围。

我想要在命令窗口中多次执行一个操作。常识告诉我可以使用FOR循环来处理这个问题。果然,如果我想要执行,比如myProg.exe,我可以打开一个命令窗口并输入:\n

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

\n很简单。\n但是如果我想要执行myProg.exe 1000次呢?我想要在FOR循环中指定一个范围,但是我不知道如何做到这一点。\n直观地说,我觉得我应该可以像下面这样做:\n

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

\n但是,这当然行不通。FOR循环将这两个列表分别解释为3个和1个令牌,所以myProg.exe只会执行3次和1次。\n


\n批处理文件解决方案\n编写一个批处理(.bat)文件可能会很简单:\n

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

\n但是难道没有一种简单的方法可以从命令行中实现这个吗?

0
0 Comments

从上述内容中可以得出以下问题的原因和解决方法:

问题原因:在Windows批处理中使用FOR循环遍历范围时,如果在命令行中执行,需要在循环变量前添加一个百分号(%);而在批处理脚本中执行,则需要在循环变量前添加两个百分号(%%)。

解决方法:在命令行中执行循环时,需要在循环变量前添加一个百分号(%);而在批处理脚本中执行循环时,需要在循环变量前添加两个百分号(%%)。

下面是使用示例:

在命令行中执行循环:


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

在批处理脚本中执行循环:

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

[/apcode]

需要注意的是,批处理脚本中使用双百分号(%%)是为了让循环正常工作,而命令行中只需要使用单百分号(%)即可。

0
0 Comments

Windows批处理FOR循环在命令行中通过范围的原因和解决方法

在Windows批处理中,使用FOR循环可以在命令行中通过指定的范围进行循环。例如,可以使用/l标签来指定循环的数字范围。下面是一个示例:

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

上述命令表示从1开始,每次递增1,循环直到达到1000。

出现这个问题的原因是需要在Windows批处理中通过命令行循环执行一系列数字操作。通过指定范围,可以简化操作并减少手动输入的工作量。

要解决这个问题,可以使用FOR循环的/l标签。该标签后面跟着一个范围,用括号括起来,范围由开始值、步长和结束值组成。在上述示例中,开始值为1,步长为1,结束值为1000。

这个问题的解决方法是在命令行中使用FOR /l标签,并指定所需的范围。这样,命令行就会循环执行指定的操作,直到达到指定的结束值。

更多关于FOR /l命令的详细信息可以在http://ss64.com/nt/for_l.html上找到。

0