簡體   English   中英

無法從 powershell 腳本訪問構建變量

[英]Can't access build variables from powershell script

我正在嘗試在腳本中使用Build 變量 根據此文檔,我應該能夠使用以下內容:

Write-Host "BUILD_DATE: $Env:BUILD_DATE"
Write-Host "BUILD_REV: $Env:BUILD_REV"

但是,我只得到以下輸出

BUILD_DATE:
BUILD_REV:

我也試過這個語法:

Write-Host "BUILD_DATE: $(Env:BUILD_DATE)"
Write-Host "BUILD_REV: $(Env:BUILD_REV)"

Write-Host "BUILD_DATE: $(Build.Date)"
Write-Host "BUILD_REV: $(Build.Rev)"

但是第一段給出了The term 'Env:BUILD_DATE' is not recognized ,第二段給出了The term 'Build.Date' is not recognized

如何在腳本中使用構建變量?

免責聲明:我對 Azure 管道幾乎一無所知,所以我的回答是基於閱讀文檔。 如果我做錯了,請告訴我們。

您的第一個命令使用正確的語法在 PowerShell 中引用環境變量(也在可擴展(雙引號)字符串中)。
(其他命令,基於子表達式運算符$(...) ,錯誤地嘗試執行名為Env:BUILD_DAT命令,...而不是引用變量。)

您的問題似乎是目標環境變量不存在

作為環境變量公開的預定義變量列表包含名為Build.Date / $env:BUILD_DATEBuild.Rev / $env:BUILD_REV

相比之下,名為DateRev變量似乎確實存在 - 正如您所說,它們用於Build.BuildNumber / $Env:BUILD_BUILDNUMBER構建變量$(Date:yyyyMMdd)$(Rev:.r) Build.BuildNumber的默認格式定義中- 但似乎是另一種沒有作為 env 暴露的。 變量。 (不像Build.BuildNumber / $Env:BUILD_BUILDNUMBER本身,它暴露)。

(我不知道這些變量在哪里定義或它們是如何分類的,以及記錄在哪里 - 如果你知道,請告訴我們。)

一個快速的解決方法是$Env:BUILD_BUILDNUMBER的值拆分為其組成部分:

# Split the build number into date and revision, by "."
$date, $rev = $Env:BUILD_BUILDNUMBER -split '\.'

"BUILD_DATE: $date"
"BUILD_REV: $rev"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM