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

我试图在我的xcopy脚本中使用Jenkins(全局)环境variables

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

我对Jenkins一无所知,但看起来你正在尝试使用某种forms的unix语法访问环境variables – 这是行不通的。

如果variables的名称是WORKSPACE,则在Windows批处理中使用该值进行扩展
%WORKSPACE% 。 这种扩展forms是在parsing时执行的。 例如,这将打印以筛选WORKSPACE的值

 echo %WORKSPACE% 

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

 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环境variables和各种扩展选项的更多信息。 例如,它解释了如何执行search/replace和子string操作。

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