簡體   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