Jenkinsfile:根据其他环境变量设置环境变量 (Windows)

Jenkinsfile: Set environment variable based on other environment variable (Windows)

我正在尝试使用基于其他环境变量的环境变量创建 Jenkinsfile。这无法正常工作,因为下面示例中的 %PATH% 未正确翻译。

使它正常工作的正确语法是什么?

pipeline {
    environment {
        ENVTEST1 = '$PATH;c:\additional\path'
        ENVTEST2 = '${PATH};c:\additional\path'
        ENVTEST3 = '$env.PATH;c:\additional\path'
        ENVTEST4 = '${env.PATH};c:\additional\path'
        ENVTEST5 = '%PATH%;c:\additional\path'
    }
    agent any
    stages {
        stage ('Build'){
            steps {
                bat 'SET' // print all env vars
            }
        }
    }
}

构建日志中的结果是这样的:

ENVTEST1=$PATH;c:\additional\path
ENVTEST2=${PATH};c:\additional\path
ENVTEST3=$env.PATH;c:\additional\path
ENVTEST4=${env.PATH};c:\additional\path
ENVTEST5=%PATH%;c:\additional\path

None 以上选项似乎有效。

有人可以告诉我如何根据另一个环境变量定义一个环境变量吗?

像这样连接字符串时应该使用双引号。

"My name is $first $last"

否则你可以这样使用“+”运算符:

'My name is ' + first + ' ' + last