Batch file 我需要我的批处理文件同时执行3个文件-等待它们完成-然后继续发送电子邮件

Batch file 我需要我的批处理文件同时执行3个文件-等待它们完成-然后继续发送电子邮件,batch-file,Batch File,以下是我得到的: START 1_0.bat START 1_0_1.bat START 1_0_2.bat START /w sendEmail -f blaahg@gmail.com -t blahg@gmail.com ..... 反正, 我希望它同时执行前三个项目(它是),然后等待它们全部完成,然后执行最后一个电子邮件步骤。它当前没有等待执行最后一个步骤。最好将它们放入另一个批处理文件,如step1.bat 步骤1.bat START 1_0.bat START 1_0_1.ba

以下是我得到的:

START 1_0.bat
START 1_0_1.bat
START  1_0_2.bat


START /w sendEmail -f blaahg@gmail.com -t blahg@gmail.com .....
反正,
我希望它同时执行前三个项目(它是),然后等待它们全部完成,然后执行最后一个电子邮件步骤。它当前没有等待执行最后一个步骤。

最好将它们放入另一个批处理文件,如step1.bat

步骤1.bat

START 1_0.bat
START 1_0_1.bat
START  1_0_2.bat
那么在你的主要

START /wait step1.bat

START /w sendEmail -f          blaahg@gmail.com -t      blahg@gmail.com .....
&&
的作用类似于“如果上一个命令(
查找
)成功,那么…

您可以使用文件作为标志来指示给定的批处理文件正在运行。为每个正在运行的批处理文件创建一个标志文件,并在每个批处理文件结束之前将其删除:

echo X > 1_0.flg
START 1_0.bat
echo X > 1_0_1.flg
START 1_0_1.bat
echo X > 1_0_2.flg
START  1_0_2.bat

rem Wait for all previous Batch files to end
:wait
if exist *.flg goto wait

START /w sendEmail -f blaahg@gmail.com -t blahg@gmail.com .....
并通过以下方式删除每个批处理文件中的标志文件:

del "%~N0.flg"
…或直接在DEL命令中写入每个批处理文件的名称


您还可以在
:wait
循环中插入
ping-n2 localhost>NUL
命令,以避免在等待循环中花费太多CPU。如果愿意,可以增加
2
值。

此方法不起作用。
Step1.bat
文件在执行三个
START
命令后立即结束,并且不等待对于批处理文件本身来说…这对我的系统来说是一个很大的负担,但它完全可以工作-非常感谢!循环本身应该没有任何性能(这就是超时的原因)。但是我不能为你的bat文件说话,因为我不知道它们。
del "%~N0.flg"