Jenkins EnvInject 插件 - 包含多行的环境变量值

Alf*_*bel 5 environment-variables jenkins jenkins-plugins

我遵循了这篇文章中关于如何使用 EnvInject 插件来创建和设置 Jenkins 环境变量的建议。我在构建后步骤中使用“注入环境变量”并设置“属性文件路径”

Windows 批处理脚本创建一个环境变量OPS并将其写入一个属性文件:results.txt其中包含多行,例如:

OPS= This is line one,
This is two
This is three 
Run Code Online (Sandbox Code Playgroud)

挑战: OPS仅从 results.txt 中选取第一行并跳过其余行。

如何设置 OPS 将所有行作为其值?

cd C:\To\Test\Class\Path
java utilities.LogExtractor>ops.txt
@echo off
setlocal EnableDelayedExpansion
set LF=^


rem *** Two empty lines are required for the linefeed
FOR /F "delims=" %%a in (ops.txt) do (
  set var=!var!!LF!%%a
)
set var=!var!!LF!
echo OPS=!var! > %JENKINS_HOME%\jobs\%JOB_NAME%\builds\%BUILD_NUMBER%\results.txt
Run Code Online (Sandbox Code Playgroud)

我将“属性文件路径”设置为 %JENKINS_HOME%\jobs\%JOB_NAME%\builds\%BUILD_NUMBER%\results.txt

phi*_*010 2

源代码来看,我想说它使用 java.util.Properties 来加载文件,调用load方法。文档说你可以用反斜杠转义换行符,所以使用

OPS= This is line one,\
This is two\
This is three 
Run Code Online (Sandbox Code Playgroud)

应该足够了。(请注意,行首的空格被省略。)