使用Windows Batch Command在Jenkins中如何使用环境变量?


73

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

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

Answers:


136

我对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
我完全忘了窗户那挑剔的细节。谢谢 !
JoxTraex 2012年

@UtsavGupta我也一直坚持下去。我之前使用的是$ BUILD_ID。现在对Windows上的%BUILD_ID%感到满意。
Himanshu Chauhan


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.