如何在Jenkins中运行bat文件

10

我的Jenkins安装在C:\Program Files (x86)\Jenkins

bat文件位于C:\Users\Admin\workspace\demoWork\run.bat

当我从命令提示符中运行此批处理文件时,一切正常。但是当我尝试从Jenkins执行批处理命令时,如图所示,Jenkins显示错误:

构建步骤“执行Windows批处理命令”将构建标记为失败

进入图像描述

Jenkins文件夹内还会自动创建以作业标题命名的工作空间文件夹,请详细解释这个问题

3个回答

11

塔特卡尔(Tatkal),您不能像您的图片那样执行命令,

为什么不尝试简单地执行以下命令:

C:\users\admin\workspace\demowork\run.bat

或者

call "C:\users\admin\workspace\demowork\run.bat"

"还有,在Jenkins文件夹内,自动创建了与作业标题相同的工作空间文件夹,你们能否详细解释一下呢?"

Jenkins会自动创建以作业标题命名的文件夹,并保存作业数据和其他构建信息...这就是它的工作原理。在Jenkins作业中,默认情况下可以使用$WORKSPACE变量来访问您的工作空间。


兄弟,我按照你上面提到的方法尝试了一下...它运行得很好...但现在我卡在了这个错误上:“进程泄漏文件描述符。请参见jenkins.io/redirect/troubleshooting/…获取更多信息”,并且已经尝试了所有方法...但似乎没有任何作用。 - Tatkal
请在执行批处理文件后发布Jenkins日志...我们会找出失败的原因。 - hopetds
你的批处理脚本在成功运行后还留下了进程吗?如果是这样,那可能会有问题。 - hopetds
@Tatkal,你的批处理脚本具体是做什么的? 看起来Jenkins无法正常退出构建步骤,所以我建议你在批处理文件中添加退出代码。例如:如果一切正常,使用exit 0退出,如果不正常,使用exit 1退出。 - hopetds
@Tatkal,那么有什么区别吗?似乎问题在于Jenkins无法完成使用“运行Windows批处理命令”启动的新进程/进程的构建步骤。您应该手动告诉Jenkins如果您的批处理脚本是否正常完成工作。 - hopetds
显示剩余4条评论

3
您提供的细节很少,所以我只能凭猜测来回答。
执行Windows批处理命令是为了执行代码,而不是执行文件。要执行文件,您可以使用以下命令:
start cmd.exe /c C:\myprj\mybat.bat
或者您可以将.bat文件的内容重写在该命令行中。
Jenkins的工作方式是为每个作业创建自己的工作空间,基本上是为了隔离环境。它是一个测试框架,因此应该用于对代码进行更改的分段,然后将其推送到您的实时(工作)环境中。人们使用它来自动化一些任务,但这不是Jenkins的主要用途。如果以上内容无法帮助您,请告诉我更多错误的详细信息,我会尽力帮助您解决问题。

编辑 - 我想让你运行引号中的部分。 - CarlMc
处理泄漏的文件描述符。请参阅 https://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptors 以获取更多信息。在运行其他作业时,我遇到了相同的错误。 - Tatkal
请查看此处 - https://dev59.com/x2Qn5IYBdhLWcg3wLkvL,特别是如果您在其他作业中遇到了相同的问题。 - CarlMc
你需要进一步说明你上面的问题,因为没有足够的信息来帮助你。 - CarlMc

3
node {
   bat 'D:\\gatling-charts-highcharts-bundle-3.0.2\\bin\\gatling.bat'
}

请写一个例子。 - Abd Abughazaleh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接