В скрипте Jenkins Groovy, как я могу получить возвращаемое значение из командного файла - PullRequest
0 голосов
/ 31 января 2019

Я хочу получить результат командного файла, который выполняется в скрипте Groovy Jenkins конвейера.

Я знаю, что могу это сделать:

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» равна нулю, хотя журнал показывает, что команда действительно вернула результат.Я знаю, что могу вывести результаты пакетного файла в текстовый файл и прочитать текстовый файл, но я просто хотел бы посмотреть, смогу ли я получить результат, как я пытался выше.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 31 января 2019

Хорошо, у меня все получилось:

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

Вот так.

...