java - 无法替换批处理文件中的参数值 - PostBuildScript 插件 Jenkins

标签 java jenkins continuous-integration jenkins-plugins

我正在使用PostBuildScript Jenkins 中的插件可在构建后操作中触发一些 Windows 批处理命令

我在作业的构建后操作中添加执行脚本

enter image description here

这就是我在directory.bat中编写的内容,用于创建包含当前时间+环境+作业名称的目录

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a

set time=%TIME:~0,2%"_"%TIME:~3,2%

mkdir D:\Report_Backup\%date:/=%"_"%time%"_"%Environment%"_"%JOB_NAME%\%test-results

xcopy "D:\bvt_workspace\project-name\test-results" D:\Report_Backup\%date:/=%"_"%time%"_"%Environment%"_"%JOB_NAME%\test-results /E /S /Q /Y

不幸的是,EnvironmentJOB_NAME 没有被替换。但是,如果我在构建步骤中替换执行 Windows 批处理命令中的相同代码,它就会像魅力一样工作。

enter image description here

注意:我无法添加多个构建步骤,因为我使用一个来触发构建。

有什么想法吗?如何让它发挥作用?

最佳答案

这听起来像 Script executed by PostiBuildScript plugin is unable to use Environment variable defined in Jenkins问题。

建议的解决方法是配置您的插件以将所需的环境变量作为参数传递给批处理脚本(根据您的情况):

D:\directory.bat $Environment $JOB_NAME

directory.bat 的开头:

set Environment=%1
set JOB_NAME=%2
...

关于java - 无法替换批处理文件中的参数值 - PostBuildScript 插件 Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60337149/

相关文章:

azure-devops - 如何指定在 Mono-Repo 中为 azure-pipelines.yml 构建包的路径?

java - 为什么在关闭手机时进入 OnCreate()?

java - 尝试获取bitRate,sampleRate,channelCount

java - 通过位置服务警报打开位置后等待位置打开

Jenkins:使用外部脚本与在 Groovy 中编码工作

wcf - 不使用 Visual Studio 构建 RIA 服务项目

java - 使用 RecyclerView 在屏幕上显示特定数量的列表

仅在等待2分钟后才会显示Jenkins GUI

mysql - 飞路假故障

mongodb - 为 MongoDB 提供种子以使用 Karate 进行自动化测试的正确方法