【发布时间】:2012-01-26 06:13:14
【问题描述】:
我正在尝试在我的 xcopy 脚本中使用 Jenkins(全局)环境变量。
${WORKSPACE} doesn't work
"${WORKSPACE}" doesn't work
'${WORKSPACE}' doesn't work
【问题讨论】:
标签: windows batch-file hudson jenkins
我正在尝试在我的 xcopy 脚本中使用 Jenkins(全局)环境变量。
${WORKSPACE} doesn't work
"${WORKSPACE}" doesn't work
'${WORKSPACE}' doesn't work
【问题讨论】:
标签: windows batch-file hudson jenkins
在 windows 中你应该使用%WORKSPACE%。
【讨论】:
我对 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 SET 或SET /? 获取有关Windows 环境变量和各种扩展选项的更多信息。例如,它解释了如何进行搜索/替换和子字符串操作。
【讨论】:
我应该这样在 Windows 上,环境变量扩展为 %BUILD_NUMBER%
【讨论】: