Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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环境变量设置Jenkins环境变量_Jenkins_Environment - Fatal编程技术网

从另一个Jenkins环境变量设置Jenkins环境变量

从另一个Jenkins环境变量设置Jenkins环境变量,jenkins,environment,Jenkins,Environment,我正在尝试设置工作环境变量。一些变量是从其他环境变量设置的。例如,在Windows上: var1=this var2=that var3=other var4=%var1%_%var2%_%var3% 我想把var4设置为“this\u that\u other”。我尝试将前三个设置为作业变量,第四个设置为构建变量。没有乐趣。如果在批处理命令中需要var4,则在批处理命令中设置var4是可行的: set var4=%var1%_%var2%_%var3% var4现在在批处理命令的持续时间内

我正在尝试设置工作环境变量。一些变量是从其他环境变量设置的。例如,在Windows上:

var1=this
var2=that
var3=other
var4=%var1%_%var2%_%var3%

我想把var4设置为“this\u that\u other”。我尝试将前三个设置为作业变量,第四个设置为构建变量。没有乐趣。

如果在批处理命令中需要var4,则在批处理命令中设置var4是可行的:

set var4=%var1%_%var2%_%var3%

var4现在在批处理命令的持续时间内具有所需的值,但不适用于任何后续构建步骤。这对我没有帮助,因为我需要在ant命令中使用var4。

因为您只在当前进程范围内设置变量。正如您所说的,如果您不想使用文件来存储和检索,另一个选项是使环境变量设置机器化,如果这符合您的需要并且不会有任何副作用的话

如果您可以安装PowerShell插件,那么使用PowerShell脚本很容易做到这一点:

[Environment]::SetEnvironmentVariable("VAR4", $WhatEverYouWant, "Machine")
这使得VAR4变量在机器级别上立即可用,这意味着在所有其他进程中都可用。

您可以使用for Jenkins来实现这一点。这里,var1、var2和var3是构建参数或预定义的环境变量。同样的事情也可以使用Groovy来完成


可能需要使用一些黑客/解决方法,例如将其写入文件并重新读取。谢谢。这正是我所担心的。谢谢Andy,我不知道,但在这种情况下,可能有多个进程在这台机器上运行,VAR4的值不同。我们正在使用EnvInject插件(1.83),也许我对它的使用很愚蠢,我的问题陈述并不精确,但我有:$var1=这个$var2=那个$var3=$var1\u$var2。它不会将u视为文字,而是查找$var1。它使用\而不是。解决方法是设置$sep=和$var3=$var1$sep$var2。