Multithreading Jenkins一次运行多个批处理文件

Multithreading Jenkins一次运行多个批处理文件,multithreading,batch-file,jenkins,Multithreading,Batch File,Jenkins,我正在寻找一种方法来暂停Jenkins,或者让Jenkins在开始另一个批处理过程之前从批处理文件中完成一项任务。基本上,我想要的是类似于跑步的东西: start /wait batchfile.bat 但是当我运行这个程序时,Jenkins只是挂起,而这个过程实际上从未完成。当我运行这样的程序时: run %startpath%\firstbatch.bat run %startpath%\secondbatch.bat Jenkins在不同的线程中运行这两个批处理文件,这给我带来了一个

我正在寻找一种方法来暂停Jenkins,或者让Jenkins在开始另一个批处理过程之前从批处理文件中完成一项任务。基本上,我想要的是类似于跑步的东西:

start /wait batchfile.bat
但是当我运行这个程序时,Jenkins只是挂起,而这个过程实际上从未完成。当我运行这样的程序时:

run %startpath%\firstbatch.bat

run %startpath%\secondbatch.bat

Jenkins在不同的线程中运行这两个批处理文件,这给我带来了一个大问题。我需要完成批处理过程,因为它们会制作和复制资产。触发的最后一批将压缩资产并在途中发送它们,但是如果资产没有完成复制,zip将在目录中没有所有文件的情况下启动。我唯一能想到的另一种方法是将每个批处理放在不同的构建中,并为Jenkins添加一个安静的时间段,但这只是猜测批处理脚本实际运行了多长时间。提前感谢。

如果希望批处理文件按顺序运行,则应该为每个批处理文件创建一个单独的生成作业,但无需猜测运行它们需要多长时间。在运行firstbatch.bat的作业的配置中,在生成后操作部分选择“生成其他项目”,并指定运行secondbatch.bat的作业。在第一个作业完成之前,此作业不会启动。

请尝试使用“call batchfile.bat”命令,该命令在批处理文件运行完成之前应该会被阻止。

我也尝试过这样做,可能我的退出代码有点不正常,因为Jenkins只会运行批处理文件,然后使用:进程泄漏文件描述符退出。有关更多信息,请参阅Finished:SUCCESS,然后立即开始下一个构建步骤,但我知道批处理尚未完成,因为我可以看到目录中填充了文件,这是有效的。我知道我这样做是因为我的批处理文件必须“调用”其他批处理才能并发运行,但由于某些原因,我会得到一个无效的目录错误,可能是因为它不喜欢我的环境变量。现在它正在工作,甚至像它应该的那样输出到控制台。谢谢你们两位的回答。我当时正为这件事大发雷霆,我知道这一定是我忽略的一件简单的事情。