我希望获取在Jenkins管道Groovy脚本中执行的批处理文件的结果。
我知道我可以做到:
def result = "pem.cmd Test_Application.pem".execute().text
但是,我需要运行一批命令并获取批处理文件的结果。上面的示例只有一个命令。我需要先更改目录,然后使用参数执行“ cmd”文件。因此,我尝试了以下操作:
def cmd = new StringBuilder()
cmd.append("CD \"${path}\"\n")
cmd.append("IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%\n")
cmd.append("pem.cmd Test_Application.pem\n")
//echo bat(returnStdout: true, script: cmd.toString())
def result = bat cmd.toString()
echo result
即使日志显示命令确实返回了结果,“结果”变量也为null。我知道我可以将批处理文件的结果输出到文本文件,然后读取文本文件,但是我只想看看是否可以像上面那样尝试获取结果。任何帮助表示赞赏。
答案 0 :(得分:2)
好的,我的工作方式如下:
def cmd = new StringBuilder()
cmd.append("CD \"${path}\"\n")
cmd.append("pem.cmd Test_Application.pem\n")
def x = bat(
returnStdout: true,
script: "${cmd.toString()}"
)
echo x
做到了。