簡體   English   中英

Jenkins Groovy中的cleanup bat命令輸出

[英]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中的白色字符,我無法刪除。

常規方法均無法使用的原因是由於編碼,因此通過添加編碼選項“ 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()


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM