如何在 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 批处理命令”在詹金斯中将构建标记为失败