【问题标题】:How to execute next batch windows command if previous execution fails?如果先前的执行失败,如何执行下一个批处理 windows 命令?
【发布时间】:2014-12-12 12:14:32
【问题描述】:

我正在尝试在 jenkins 中一个接一个地执行多个 Windows 批处理命令。问题是,如果任何项目/构建失败,它永远不会执行下一个 Windows 批处理命令。

我的问题是如果之前的执行失败,如何执行下一个 windows 批处理命令?

在这方面帮助我。

【问题讨论】:

  • 尝试了 exit /b 0... 但没有成功。

标签: windows testing jenkins batch-processing


【解决方案1】:

当你说“多个windows批处理命令”时,你的意思是:

  • 多个执行 Windows 批处理命令构建步骤
  • 或者在一个单个构建步骤中有多个命令?

如果配置多个构建步骤,您只需要确保构建步骤的最后一个命令不会返回除0 之外的任何内容。您可以通过在构建步骤中添加以下任一作为最后一条语句来做到这一点:

  • exit /b 0
  • echo "All done"

对于同一构建步骤中的多行,如果一行/语句失败,则执行 Windows 批处理命令的默认实现不会中断(这与默认的 Execute Shell 实现不同)。只要最后一条语句返回0,构建步骤就不会失败,中间任何失败的行都无关紧要。

再一次,你可以参考上面的列表来确保最后一行总是返回0

【讨论】:

  • :我的意思是“多次执行 Windows 批处理命令构建步骤”。 exit /b 0 没有成功。尚未尝试使用 echo "All done"。截至目前,我正在利用上游和下游。但是要弄清楚为什么在以前的构建失败时它无法执行下一个命令。感谢您的信息!
【解决方案2】:

Re “如果任何项目/构建失败”

你的意思是“如果任何批处理命令失败”?


Conditional BuildStep Plugin

在您的工作配置中向下滚动到:

构建


[对于每个可能失败的命令在此构建部分的底部添加构建步骤]

条件步骤(单个)

跑吗? | 不是

| 执行 Windows 批处理命令

命令 | ... your commands ...

[点击高级...]

评估失败 | 构建失败

建造者 | 设置构建结果

结果 | 成功


或仅添加一个条件步骤(单个) 部分并将所有命令写入:

命令 | ... your commands ...


或者也许条件步骤(多个)是适合您的方式。到目前为止我还没有使用过这个,所以我没有太多帮助。

【讨论】:

  • @Gen Broser :尚未尝试使用条件构建步骤。将尝试。感谢您的信息。
  • @louis :看起来 gen broeser 解决方案是可行的。你有什么理由接受另一种解决方案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 2020-02-01
相关资源
最近更新 更多