当前位置: 首页 > 知识库问答 >
问题:

在Jenkins Groovy脚本中,如何从批处理文件中获取返回值

施念
2023-03-14

我希望获取在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,即使日志显示命令确实返回了结果。我知道我可以将批处理文件结果输出到文本文件,并读取文本文件,但我只想看看是否可以像上面尝试的那样获取结果。感谢您的帮助。

共有1个答案

羊舌青青
2023-03-14

好的,我的工作如下:

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

就这样。

 类似资料:
  • 问题内容: 我正在尝试从下面给出的Java版本输出中获取‘6’ 同样,我写了这个批处理脚本 显示“ 1.6.0_21” 有人可以指导我正确的方向吗?我不太熟悉。 问题答案: 在第一个循环中,说我们将仅使用命令输出中的第三个标记。无需将命令的输出重定向到文件,我们可以在循环本身中运行此命令。插入记号()是转义字符,并且需要,所以我们可以嵌入,并在命令字符串符号。 在循环体内,我们设置了一个新的var

  • 问题内容: 我很确定答案是否定的,但是我想我还是会问。 如果我的站点引用了名为“ whatever.js”的脚本,是否可以从该脚本中获取“ whatever.js”?喜欢: 麻烦多于依赖检查所值得的,但是这真是麻烦。 问题答案: var scripts = document.getElementsByTagName(‘script’); var lastScript = scripts[scrip

  • 我想从R脚本执行批处理文件。该文件位于类似于“网络\路径\到\批处理\文件”的目录中。bat。 我知道我可以使用R中的system命令来运行DOS命令,但我不能简单地使用system(“start file.bat”)。那么,如何最好地使用R脚本来执行这个批处理文件呢?

  • 我有以下代码,当我从批处理文件中执行它时,我想隐藏EXE窗口。可以吗?请帮助。(在后台运行exe)

  • 我只需要得到HH:MM来进行代码工作,但如果我这样做,那么变量是HH:MM:SS,我如何打破字符串或使其仅显示小时和分钟?

  • 这可能是SO、dostips和ss64中几个问题的重复。我所做的研究告诉我要注意函数中的作用域。但我的解决方案简单明了,但问题依然存在 和背后的真正含义 如何在批处理脚本中工作,例如