2017-04-21 331 views
2

我正在使用Jenkins 2.46.1 我已經安裝了一個構建管道插件,並且我想在其中執行一個Windows批處理文件。批處理文件應該在新的命令窗口中執行,而不是在jenkins控制檯輸出中執行。我給下面的詹金斯管道Groovy腳本:在Jenkins中執行WIndows bat文件

node { 
    stage 'Init' 
    bat ''' 
     call C:\\myprj\\mybat.bat stop 
     EXIT /B 0 
    ''' 
    stage 'Deploy' 
    bat '''call C:\\myprj\\mybat.bat''' 
} 

INIT階段,我想殺死進程,如果它已經打開,並且在舞臺部署應該打開一個新的命令窗口並運行我的批處理文件。 問題是上述不起作用。構建成功,但沒有命令窗口打開。 PLS建議

+0

請參考這個答案。 https://stackoverflow.com/questions/10228327/running-bat-files-in-jenkins/48750441#48750441 –

回答

2

從技術上講,要做到你的要求,你應該能夠運行

bat 'start cmd.exe /c C:\\myprj\\mybat.bat' 

這將啓動一個新的命令窗口(CMD.EXE),並給出運行批處理文件。根據你的詹金斯奴隸如何運行,你可能看不到任何東西。 (例如,如果它作爲Windows服務或不同的用戶運行,你什麼都看不到)

+0

詹金斯作爲一個Windows服務運行。在這種情況下,我無法打開新的命令窗口嗎? – user5917011

+0

我希望它在新的命令窗口中打開的原因是批處理文件將運行服務器。只要服務器正在運行,命令窗口就會保持打開狀態。因此,構建將始終顯示爲「正在執行」,而不會像「已完成」一樣 – user5917011

+0

我知道沒有簡單的方法,它是Windows服務設計的一部分。您可以無限期地使用循環掛起蝙蝠進程。當然,這會關聯構建節點。如果你真的想一起破解一些東西,你可以有事件日誌中事件觸發的計劃任務,然後讓你的蝙蝠文件/服務創建該事件。 –