【问题标题】:Why is JENKINS not using environment variables in Powershell area?为什么 JENKINS 不在 Powershell 区域中使用环境变量?
【发布时间】:2026-02-14 09:15:01
【问题描述】:

在 Jenkins 作业的“Powershell”输入框中运行时

${WORKSPACE}\MyScript.ps1 arg1 arg2

有一个错误 - 表达式或语句中出现意外标记“\MyScript.ps1”。另一种方法是硬编码脚本的路径,效果很好。但是如果我想为此在项目结构中指定一个相对路径,我不能这样做,因为错误。

我在尝试在 args(即 arg2)中使用 Jenkins 环境变量时遇到了同样的问题。我使用了将其作为 powershell 变量 $($env:BUILD_NUMBER + .... ) 的解决方法

【问题讨论】:

  • & "$WORKSPACE\MyScript.ps1" arg1 arg2
  • 您关于环境变量的第二个陈述毫无意义。 $Env: 驱动器是 在 powershell 中访问环境变量的方式(同样使用 %VAR% 批量语法)
  • @Incorrigible - 注意双 $。看来 Jenkins 并不是简单地替换了 $environment 变量。

标签: powershell jenkins-plugins


【解决方案1】:

Jenkins piepleine 在某些特定情况下在扩展全局变量表达式(param、env 或简单的全局)方面存在一些问题。你在clojure中使用这个表达式吗?试一试,然后将它们放入普通的 groovy 变量中。

【讨论】: