jenkins - 在 Jenkins Groovy 脚本中,如何从批处理文件中获取返回值
问题描述
我正在寻找在 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”变量仍为空。我知道我可以将批处理文件结果输出到文本文件并读取文本文件,但我只是想看看我是否可以像上面尝试的那样获取结果。任何帮助表示赞赏。
解决方案
好的,我得到它的工作如下:
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
这样做。
推荐阅读
- python - python中具有负步长值的范围函数的停止值背后的逻辑是什么
- vb.net - 删除阅读器时,WaitForSlotEvent 的 pkcs11Interop 问题
- arrays - 在 C 中快速排序二维字符串数组
- regex - 如何替换powershell中第二次出现的字符?
- java - 由于不同的模块,javax.crypto.CipherSpi 的 Classcast 异常
- bash - 在 Linux VM 上调用-AzVmRunCommand 以错误的顺序传递参数
- powerbi - Power BI 服务中的数据警报可以发送多封电子邮件吗?
- html - 如何删除 HTML 表格中整个列中的某些字符串?
- java - Java语言中如何连续输入int、double和String?
- typescript - 类型提示来自本地依赖的 Vue 3 全局属性