我有一个exe文件。我想一个接一个地重复运行几次。我试过下面的批处理文件,但无法做到有没有办法做到这一点?抱歉,我是代码编写的新手
@echo off
start ran.exe
start ran.exe
start ran.exe
答案 0 :(得分:2)
假设ran.exe
位于当前文件夹或路径中,那么您只需编写:
@echo off
ran
ran
ran
调用它三次。如果在PATH
上找不到,请使用如下所示的完全限定名称:
@echo off
c:\path\to\ran
c:\path\to\ran
c:\path\to\ran
运行程序是在批处理文件的一行上命名它的正常效果。
此外,由于.EXE
环境变量中列出了PATHEXT
,因此您不需要在名称中包含ran.com
,除非自{{.COM
之后还有文件名PATHEXT
1}}在.EXE
之前的默认值START
中列出。
仅在批处理文件中需要START /?1
内置命令来处理某些特殊情况。请参阅FOR
的输出以获取其文档。通常,您不需要它来启动程序。
更新:要将此概括为N次调用,请使用FOR
命令。 FOR /?
非常强大,在命令提示符下键入@echo off
for /L %%N in (1,1,%1) do c:\path\to\ran %%N
以获取文档。对于指定为批处理文件的参数的N次重复,并将当前计数作为其第一个参数传递给命令,请执行以下操作:
FOR
使用FOR
记住的棘手问题是迭代变量必须在批处理文件中以百分号命名。帮助文本说明了这一点,但只是顺便说一句。
更新2:更多细节和解释。
在这种情况下,我们想要重复命令N次。 /L
支持各种循环,但获得完全N次迭代的最简单方法是使用其FOR /L %%N (start,step,end)
选项,该选项使用起始值,步长和结束值来定义数字迭代。
这些在括号中指定为%1
。为了获得1到N的简单计数器,我们告诉它从1开始,逐步开始,并停止批处理文件的第一个参数的值,该文件名为%1
。
批处理文件本身的参数命名为%9
到%*
,CALL /?
命名所有参数。请注意,这里存在一个微妙的雷区,涉及正确引用包含空格的文件名。为了让生活变得简单,请尽量不要这样做。否则,SET /?
记录命令行参数约定,FOR
记录许多与常规批处理文件变量相关的内容。
其他形式的/D
允许您遍历文件(无选项),目录(/R
),递归地在树中的目录(/F
),或者内容的各个部分文件({{1}})。