首页 > 解决方案 > 在 Jenkins 中获取批处理文件的返回

问题描述

我有一个简单的批处理文件返回文件的数量。我打电话给它并试图从詹金斯那里得到那个返回值。但是,它并不像预期的那样......我的批处理文件:

@echo off
set count = 0
for /f %%A in ('dir C:\Temp\AutoTestWorkspace\BAT\ ^|find "File(s)"') do set count=%%A
echo %count%

我的詹金斯代码:

def total_files = bat ( script: 'D:\\CICD\\MamaBatScript.bat', returnStdout: true)
echo "Total Files is " + total_files

输出:

Total Files is 
C:\Temp\Jenkins\workspace\AutomationTesting\DispatchTests@2>D:\CICD\MamaBatScript.bat
2

我只想得到数字......另外,你能告诉我为什么输出如此奇怪......

标签: jenkinsjenkins-pipeline

解决方案


您应该只删除第一行输出。

def stdout = bat(returnStdout: true , script: 'D:\\CICD\\MamaBatScript.bat').trim()
def total_files = stdout.readLines().drop(1).join(" ")       

推荐阅读