Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将文件中的变量加载到Jenkins管道中的windows环境变量中?_Windows_Jenkins_Jenkins Pipeline - Fatal编程技术网

如何将文件中的变量加载到Jenkins管道中的windows环境变量中?

如何将文件中的变量加载到Jenkins管道中的windows环境变量中?,windows,jenkins,jenkins-pipeline,Windows,Jenkins,Jenkins Pipeline,我有以下Jenkinsfile node { stage 'checkout' deleteDir() checkout scm load 'LoadTheseVariables.txt' echo "MYKEY: ${MYKEY}" echo "REPO: ${REPO}" bat 'echo MYKEY is %MYKEY%' bat 'echo REPO is %REPO%' } 文件loadTh

我有以下
Jenkinsfile

node  {
    stage 'checkout'
    deleteDir()
    checkout scm

    load 'LoadTheseVariables.txt'  

    echo "MYKEY: ${MYKEY}"
    echo "REPO: ${REPO}"

    bat 'echo MYKEY is %MYKEY%'
    bat 'echo REPO is %REPO%'        
}
文件
loadTheVariables.txt
包含:

MYKEY="ThisIsTheKey"
REPO="ThisIsTheRepo"
Jenkins构建的输出是:

<..snip..>
[Pipeline] load
[Pipeline] { (LoadTheseVariables.txt)
[Pipeline] }
[Pipeline] // load
[Pipeline] echo
MYKEY: ThisIsTheKey
[Pipeline] echo
REPO: ThisIsTheRepo
[Pipeline] bat
[test] Running batch script

D:\Jenkins\workspace\test>echo MYKEY is  
MYKEY is 
[Pipeline] bat
[test] Running batch script

D:\Jenkins\workspace\test>echo REPO is  
REPO is 
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

[管道]负载
[Pipeline]{(LoadTheseVariables.txt)
[管道]}
[管道]//加载
[管道]回声
我的钥匙:这是钥匙
[管道]回声
回购协议:这是TherePO
[管道]蝙蝠
[测试]正在运行批处理脚本
D:\Jenkins\workspace\test>echo MYKEY是
我的钥匙是
[管道]蝙蝠
[测试]正在运行批处理脚本
D:\Jenkins\workspace\test>echo REPO是
回购是
[管道]}
[管道]//节点
[管道]管道末端
完成:成功
Jenkins管道可以看到变量,但为什么我的windows cmd环境不能看到变量?我甚至在最后的
bat
命令之前尝试了这个步骤:
bat'refreshenv'
,但这并没有用这些变量重新加载环境


如何从Windows作业中的文件加载变量,并在运行时将其加载到环境中?

解决方案是在
bat
命令周围使用双引号,而不是单引号。似乎工作正常。

如果它的外部批处理文件