在 Jenkins 中清理 bat 命令输出 Groovy
cleanup bat command output in Jenkins Groovy
如何在 Jenkins 的管道脚本中清除 bat 命令的输出
以下是我用过的流水线脚本
Drive_list = bat ( label: 'Get Drive List',
returnStdout: true,
script: 'wmic logicaldisk where DriveType=3 get DeviceID'
).trim()
Drive_list 现在包含以下内容。
{D:\Jenkins\workspace\test>wmic logicaldisk where DriveType=3 get DeviceID
DeviceID
C:
D:}
提取列表应该做什么{'C:','D:'}
我尝试使用 c_list = Drive_list.tokenize('\r\n')
标记化 Drive_list 来创建列表,现在 c_list 是
{[D:\Jenkins\workspace\test>wmic logicaldisk where DriveType=3 get DeviceID , DeviceID , , C: , , D:]}
清理 c_list
我试过以下
c_list.removeAll{ it.contains('DeviceID')
结果是
{[DeviceID , , C: , , D:]}
只删除了第一行,但仍有其他人添加到此驱动器 ID 有一些我无法删除的白色字符。
groovy 方法中 none 的原因是因为编码,通过添加编码选项修改管道脚本 "UTF-16LE" 有效。
Drive_list = bat ( label: 'Get Drive List',
returnStdout: true,
encoding : "UTF-16LE",
script: 'wmic logicaldisk where DriveType=3 get DeviceID'
).trim()
您可以使用 groovy(java) 本机方法获取根驱动器:
https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listRoots()
File[] Drive_list = File.listRoots()
如何在 Jenkins 的管道脚本中清除 bat 命令的输出
以下是我用过的流水线脚本
Drive_list = bat ( label: 'Get Drive List',
returnStdout: true,
script: 'wmic logicaldisk where DriveType=3 get DeviceID'
).trim()
Drive_list 现在包含以下内容。
{D:\Jenkins\workspace\test>wmic logicaldisk where DriveType=3 get DeviceID
DeviceID
C:
D:}
提取列表应该做什么{'C:','D:'}
我尝试使用 c_list = Drive_list.tokenize('\r\n')
标记化 Drive_list 来创建列表,现在 c_list 是
{[D:\Jenkins\workspace\test>wmic logicaldisk where DriveType=3 get DeviceID , DeviceID , , C: , , D:]}
清理 c_list
我试过以下
c_list.removeAll{ it.contains('DeviceID')
结果是
{[DeviceID , , C: , , D:]}
只删除了第一行,但仍有其他人添加到此驱动器 ID 有一些我无法删除的白色字符。
groovy 方法中 none 的原因是因为编码,通过添加编码选项修改管道脚本 "UTF-16LE" 有效。
Drive_list = bat ( label: 'Get Drive List',
returnStdout: true,
encoding : "UTF-16LE",
script: 'wmic logicaldisk where DriveType=3 get DeviceID'
).trim()
您可以使用 groovy(java) 本机方法获取根驱动器:
https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listRoots()
File[] Drive_list = File.listRoots()