繁体   English   中英

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

[英]Jenkins Windows Batch Command Powershell Environment Variables

我有一个PowerShell脚本要在jenkins中作为构建步骤执行,并且需要将环境变量传递给它

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

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

由于某些原因,从未设置-Version参数,并且在控制台日志输出中仅看到$env:APP_VERSION_NUMBER

这是语法问题吗?

当您使用PowerShell CLI的-File参数时传递给脚本参数被视为文字 ,因此,假设您不是从PowerShell调用命令行,则不会扩展$env:APP_VERSION_NUMBER

要强制目标 PowerShell进程,以评估的参数,你必须使用-Command而非-File

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

但是, 既然我们知道您正在通过 Jenkins(类型为Execute Windows batch command的构建步骤 通过cmd.exe (批处理文件) 调用命令行cmd.exe简单的答案的确是cmd.exe扩展环境-variable引用,使用其%<envVarName>%语法

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

注意:不一定要在版本号中加上环境变量引用"..." ,但要养成良好的习惯,以便带有嵌入空格或其他外壳元字符的值也能正确传递。

事实证明,这确实是一个语法问题。 该修复程序如下所示

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

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM