Batch file 逐个执行bat文件

Batch file 逐个执行bat文件,batch-file,Batch File,我得到的是bat文件列表: file1.bat file2.bat file29.bat 我需要他们一个接一个地跑。意思是当file1.bat关闭file2.bat启动时,依此类推 我试过这个,但它不能正常工作: start /wait call file1.bat start /wait call file2.bat 您可能希望在问题中添加更多内容,使其更易于理解。我的猜测是,您希望bat文件打开下一个文件,然后关闭自己 如果那是你想做的;将以下命令添加到每个文件: start fi

我得到的是bat文件列表:

  • file1.bat
  • file2.bat
  • file29.bat
我需要他们一个接一个地跑。意思是当
file1.bat
关闭
file2.bat
启动时,依此类推

我试过这个,但它不能正常工作:

start /wait call file1.bat 
start /wait call file2.bat

您可能希望在问题中添加更多内容,使其更易于理解。我的猜测是,您希望bat文件打开下一个文件,然后关闭自己

如果那是你想做的;将以下命令添加到每个文件:

start file2.bat
exit
当然,您需要将每个文件的
start file2.bat
更改为
start file3.bat
,依此类推


如果你想用
file1.bat
来管理所有的文件,我认为批量处理是不可能的。

你没有描述它到底有多不符合你的期望。我猜发生的情况是,在下一个脚本继续之前,您必须关闭每个脚本

start
上的文档说明:

WAIT        Start application and wait for it to terminate.
command/program
            If it is an internal cmd command or a batch file then
            the command processor is run with the /K switch to cmd.exe.
            This means that the window will remain after the command
            has been run.
如果必须使用
启动
,则可以强制它使用
/c
开关,一旦完成,该开关将自动关闭窗口:

start /wait cmd /c call file1.bat
我不确定您是否通过使用
call
完成了任何事情,因此这应该相当于:

start /wait cmd /c file1.bat
使用
start
为每个程序创建一个新窗口,您可能只想在单个命令处理器窗口中运行所有程序

正如Biffin所指出的,您可以在主脚本中列出它们,它们将按顺序运行

call file1.bat
call file2.bat
...
call file29.bat
简写为:

for /l %%f in (1; 1; 29) do call file%%f.bat
请记住,在批处理脚本中,而不是在命令行中,将这些百分比字符加倍

这个问题也许可以解释你所看到的一些意想不到的行为


难道不是每一行上的文件都能工作吗?
对于(1;1;29)中的/l%f,请调用文件%f.bat
每一行上的文件都能工作,但它们都同时运行。我没有弄乱
start
命令,但语法不是
start[/wait][program]
?这(如果我是正确的)
call
不会做任何事情。您根本不需要使用START命令。只需使用CALL和批处理文件名。不,这不是我的意思。我是说。有一个包含多个bat文件的文件夹。他们每个人都转换一个视频文件。它们会自动关闭,所以我不必担心。我需要的是让它们一个接一个地打开。第一个file1.bat关闭,file2.bat自动打开。这就是问题所在:)