[英]In Jenkins Groovy script, how can I grab a return value from a batch file
我希望獲取在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
即使日志顯示命令確實返回了結果,“ result”變量仍為null。 我知道我可以將批處理文件的結果輸出到文本文件,然后讀取文本文件,但是我只想看看是否可以像上面那樣嘗試獲取結果。 任何幫助表示贊賞。
好的,我的工作方式如下:
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
做到了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.