4

我正在寻找一种方法来暂停詹金斯或让詹金斯在开始另一个批处理之前从批处理文件完成任务。基本上我想要的是类似于运行的东西:

start /wait batchfile.bat

但是当我运行这个詹金斯只是挂起,这个过程从未真正完成。当我运行这样的事情时:

run %startpath%\firstbatch.bat

run %startpath%\secondbatch.bat

Jenkins 在不同的线程中运行这两个批处理文件,这对我来说是个大问题。我需要完成批处理,因为它们会烹饪和复制资产。触发的最后一批压缩资产并在途中发送它们,但如果资产未完成复制,则压缩开始时目录中没有所有文件。我能想到的唯一另一种方法是将每个批次放在不同的构建中,并为 Jenkins 添加一个安静期,但这只是对批次脚本实际运行时间的猜测。提前致谢。

4

2 回答 2

2

尝试使用“call batchfile.bat”,这应该会阻塞,直到批处理文件完成运行。

于 2012-11-27T21:49:34.387 回答
1

如果您希望它们按顺序运行,您应该为每个批处理文件创建一个单独的构建作业,但您不需要猜测它们需要多长时间才能运行。在运行 firstbatch.bat 的作业的配置中,在 Post Build Actions 部分中选择“Build other projects”并指定运行 secondbatch.bat 的作业。在第一个作业完成之前,该作业不会开始。

于 2012-11-27T21:17:11.140 回答