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 *