代码之家  ›  专栏  ›  技术社区  ›  jero2rome

Jenkins Windows批处理命令Powershell环境变量

  •  1
  • jero2rome  · 技术社区  · 6 年前

    powershell -File .\Build.ps1 -Version $env:APP_VERSION_NUMBER
    

    这个 APP_VERSION_NUMBER 是由Jenkins的版本号插件设置的环境变量。

    由于某种原因 -Version $env:APP_VERSION_NUMBER

    这是语法问题吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   mklement0    6 年前

    使用PowerShell CLI时 -File ,的 传递给脚本的参数被视为 字面量 ,因此,假设您正在调用命令行 , $env:APP_VERSION_NUMBER

    迫使 目标 PowerShell进程来计算参数,必须使用 -Command 而不是

    powershell -Command .\Build.ps1 -Version $env:APP_VERSION_NUMBER
    

    然而, 现在我们知道您正在调用命令行 通过 cmd.exe (批处理文件)来自Jenkins(类型为 Execute Windows batch command ),更简单的答案是 使用环境变量的 %<envVarName>% :

    powershell -File .\Build.ps1 -Version "%APP_VERSION_NUMBER%"
    

    注意:将环境变量引用括在 "..." 对于版本号不是严格必要的,但是这是一个很好的习惯,这样就可以正确地传递带有嵌入空格或其他shell元字符的值。

        2
  •  0
  •   jero2rome    6 年前

    powershell -File ".\Build.ps1" -Version %APP_VERSION_NUMBER%
    

    enter image description here