jenkinsfile groovy調用本地bat讀取本地文件設置參數
why
在jenkinsfile使用groovy
語法. 去調用windows下的bat時候, 想要以本地文件的內容為變量.
但是因為jenkins的限制, 並不能導入groovy
中對於本地文件讀寫包, 則這個時候就要通過window自己的bat命令讀內容設置變量了.
每調用一次bat時, 新起一個臨時bat文件,則set屬性后只能在本次調用中使用.
這樣的限制下, 要在調用中重復使用該屬性, 則應該用&
或者&&
來合並多行命令.(&
順序執行,無論對錯. &&
順序執行,遇錯即停)
how
// 1.設置變量延遲
// 2.獲取文本內值作為變量
// 3.輸出變量
// 4.切換到對應目錄
// 5.顯示目錄
// 6.打包目錄下所有文件到根目錄(避免壓縮包內路徑過深)
bat "setlocal enabledelayedexpansion&&set /p version=<${artifact_id}/guide.txt&&echo !version!&&cd ./${artifact_id}/!version!&&dir&&WinRAR a ../../${artifact_id}.zip *"
對應的.bat
文件內容應該是
setlocal enabledelayedexpansion
set artifact_id=%1
set /p version=<%artifact_id%/guide.txt
echo !version!
cd ./%artifact_id%/!version!
dir
WinRAR a ../../%artifact_id%.zip *