如何使用Windows批处理命令在Jenkins中使用环境变量?

时间:2011-12-22 16:14:22

标签: windows batch-file hudson jenkins

我正在尝试在我的xcopy脚本中使用 Jenkins(全局)环境变量

${WORKSPACE} doesn't work
"${WORKSPACE}" doesn't work
'${WORKSPACE}' doesn't work

3 个答案:

答案 0 :(得分:119)

我对Jenkins一无所知,但看起来你试图使用某种形式的unix语法来访问环境变量 - 这是行不通的。

如果变量的名称是WORKSPACE,则使用
在Windows批处理中扩展该值 %WORKSPACE%。这种扩展形式是在解析时执行的。例如,这将打印以筛选WORKSPACE的值

echo %WORKSPACE%

如果您在执行时需要该值,则需要使用延迟扩展!WORKSPACE!。默认情况下,通常不启用延迟扩展。使用SETLOCAL EnableDelayedExpansion启用它。通常需要延迟扩展,因为括号内的代码块会同时被解析,因此除非您使用延迟扩展,否则在块中分配的值不能在稍后的同一块中读取。

setlocal enableDelayedExpansion
set WORKSPACE=BEFORE
(
  set WORKSPACE=AFTER
  echo Normal Expansion = %WORKSPACE%
  echo Delayed Expansion = !WORKSPACE!
)

以上的输出是

Normal Expansion = BEFORE
Delayed Expansion = AFTER

使用命令行中的HELP SETSET /?获取有关Windows环境变量和各种扩展选项的详细信息。例如,它解释了如何进行搜索/替换和子串操作。

答案 1 :(得分:24)

在Windows中,您应该使用%WORKSPACE%

答案 2 :(得分:0)

我应该这样做在Windows上,环境变量扩展为%BUILD_NUMBER%