如何在Windows命令行环境中以串行方式运行多个批处理文件

时间:2010-01-15 12:32:05

标签: batch-file cmd

我有一个批处理文件,

bat1.bat
bat2.bat

但它在bat1结束时停止

任何线索?

5 个答案:

答案 0 :(得分:40)

使用call

call bat1.cmd
call bat2.cmd

默认情况下,当您从另一个控件运行批处理文件时,控件不会传回给调用文件。这就是你需要使用call

的原因

基本上,如果您有这样的批次:

@echo off
echo Foo
batch2.cmd
echo Bar

然后它只会输出

Foo

如果你像

那样写
@echo off
echo Foo
call batch2.cmd
echo Bar

然而,它将输出

Foo
Bar

因为在batch2终止后,程序控制将传回原始批处理文件。

答案 1 :(得分:2)

如果bat1.bat异常停止(除了运行到最后,比如调用exit),就会发生这种情况,你可以通过使用新的cmd.exe来运行每个bat文件来解决这个问题:

start /b /wait bat1.bat
start /b /wait bat2.bat

如果你的bat文件中没有关注命令,你可以省略最后一个。

答案 2 :(得分:1)

要寻找的其他东西:

我有一个类似的问题,我使用call命令调用多个批处理文件,但它没有将控件传回原始的.bat文件。

我发现在批处理文件的末尾有一个exit命令关闭了DOS窗口,然后返回到原来的.bat文件并完成那里的命令。

答案 3 :(得分:1)

为了一次运行多个.exe文件,首先需要创建.bat文件,然后添加所有.exe文件,如下所示:

  D:\Data\Feed.exe Books.xml
  D:\Data\Feed.exe Mobile.xml
  D:\Data\Feed.exe Clothes.xml

然后另存为something.bat然后用cmd运行它。

答案 4 :(得分:1)

如果要按顺序运行批处理文件,则必须在每个文件的末尾添加“start bat1.bat”。