首页 > 解决方案 > 如何将 Cmd 行输出定向到 jenkins

问题描述

Stage("execution") {
    Steps {
       bat 'start cmd.exe /c c:\\users\\doc\\sample.bat'
    }
}

上面的脚本只是打开cmd提示并执行它。它没有获取执行的输出。即使执行失败,该阶段也显示为成功,并进入下一个阶段进行部署。我想开发它,以便cmd詹金斯将提示中的输出作为输入,并且阶段应该继续。如果阶段在执行期间失败,阶段应该显示失败,如果执行成功,阶段应该在 Jenkins 中显示成功。任何人都可以帮忙吗?

另一个问题:如果批处理文件位于Git中,如何在上面的脚本中给出路径?

标签: jenkinsjenkins-pipeline

解决方案


使用该start命令,您正在创建一个 Jenkins 无法跟踪的新分离控制台进程。

改为这样做:

bat 'call "c:\\users\\doc\\sample.bat"'

这将在与当前脚本相同的环境中运行批处理文件并等待批处理文件结束。Jenkins 将能够通过批处理文件的退出代码捕获标准输出并检测错误。

您可以编写@call以从输出中隐藏命令行。


推荐阅读