如何在 Jenkins“执行 Windows 批处理命令”中组合两个或多个命令

Posted

技术标签:

【中文标题】如何在 Jenkins“执行 Windows 批处理命令”中组合两个或多个命令【英文标题】:How to combine two or more command in Jenkins "Execute Windows batch Command" 【发布时间】:2020-02-01 13:27:06 【问题描述】:

我正在使用 Jenkins 运行我的 SoapUI 项目,但我在 jenkins 中为每个项目构建了单独的“执行 Windows 批处理命令”。例如,有 10 个不同的项目,我需要在一个作业中有 10 个“执行 Windows 批处理命令”。如何在一个“执行 windows 批处理命令”中组合 2 个或多个命令,以便我可以在一个作业中运行所有项目?

第一个项目:

    "C:\Program Files\SmartBear\ReadyAPI-2.6.0\bin\testrunner.bat" - 
    sREG_Agreement_GetAgreementv1 -r -a -j -J -fC:\Project\ESB_RegressionReport "- 
    RJUnit-Style html Report" -FXML -EUAT 
    C:\Project\ESB_Regression_GitHub\SoapUIProjects\Agreement-GetAgreement-v1- 
    soapui-project.xml

第二个项目:

    "C:\Program Files\SmartBear\ReadyAPI-2.6.0\bin\testrunner.bat" - 
    sREG_Capability_GetCapability_v2 -r -a -j -J -fC:\Project\ESB_RegressionReport 
    "-RJUnit-Style HTML Report" -FXML -EUAT 
    C:\Project\ESB_Regression_GitHub\SoapUIProjects\Capability_GetCapability_v2- 
    soapui-project.xml

所有命令都可以写在一个Execute Windows Batch Command中。

【问题讨论】:

在 Jenkins 的作业配置中输入的命令行是由运行在 Windows 上的 Jenkins 写入一个临时创建的批处理文件中,接下来由 Jenkins 启动的cmd.exe 处理。 Jenkins 启动后删除批处理文件 cmd.exe 自行终止。如果有多个命令行运行批处理文件,则必须使用命令call,即必须从 Jenkins 创建的批处理文件中调用该批处理文件。有关如何从批处理文件中运行另一个批处理文件的详细信息,请参阅this answer。 【参考方案1】:

也许我误解了这个问题,但执行 Shell 和执行 Windows 批处理命令构建步骤通常用于在其中编写脚本,而不仅仅是执行单个命令。因此,您可以在同一个 Execute Windows Batch Command 块中同时运行它们。例如

"C:\Program Files\SmartBear\ReadyAPI-2.6.0\bin\testrunner.bat" - 
sREG_Agreement_GetAgreementv1 -r -a -j -J -fC:\Project\ESB_RegressionReport "- 
RJUnit-Style HTML Report" -FXML -EUAT 
C:\Project\ESB_Regression_GitHub\SoapUIProjects\Agreement-GetAgreement-v1- 
soapui-project.xml

"C:\Program Files\SmartBear\ReadyAPI-2.6.0\bin\testrunner.bat" - 
sREG_Capability_GetCapability_v2 -r -a -j -J -fC:\Project\ESB_RegressionReport 
"-RJUnit-Style HTML Report" -FXML -EUAT 
C:\Project\ESB_Regression_GitHub\SoapUIProjects\Capability_GetCapability_v2- 
soapui-project.xml

...

【讨论】:

那是错误的。 @Mofi 在他的评论中很好地解释了这一点。必须使用call 调用几个操作。

以上是关于如何在 Jenkins“执行 Windows 批处理命令”中组合两个或多个命令的主要内容,如果未能解决你的问题,请参考以下文章

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

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

使用 jenkins 管道在 Windows 服务器上部署 jar

Jenkins构建项目

Selenium第18课 Jenkins

Jenkins 中的自动部署构建失败