Batch file 逐个执行bat文件
我得到的是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
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自动打开。这就是问题所在:)