无法从 powershell 脚本访问构建变量
Can't access build variables from powershell script
我正在尝试使用 Build variables in a script. According to this documentation 我应该可以使用以下内容:
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 中引用环境变量(也在可扩展 (double-quoted) 中字符串).
(其他基于子表达式运算符 $(...)
的命令错误地尝试执行名为 Env:BUILD_DAT
的 命令 ,...而不是引用变量。)
您的问题似乎是目标环境变量不存在。
list of predefined variables that are exposed as environment variables不包含名为Build.Date
/$env:BUILD_DATE
和Build.Rev
/$env:BUILD_REV
的变量。
相比之下,名为 Date
和 Rev
的变量似乎确实存在 - 如您所述,它们用于 Build.BuildNumber
/ $Env:BUILD_BUILDNUMBER
的默认格式定义构建变量、$(Date:yyyyMMdd)$(Rev:.r)
- 但似乎是 不同的类型,没有公开为 env。 vars.(不像 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"
我正在尝试使用 Build variables in a script. According to this documentation 我应该可以使用以下内容:
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 中引用环境变量(也在可扩展 (double-quoted) 中字符串).
(其他基于子表达式运算符 $(...)
的命令错误地尝试执行名为 Env:BUILD_DAT
的 命令 ,...而不是引用变量。)
您的问题似乎是目标环境变量不存在。
list of predefined variables that are exposed as environment variables不包含名为Build.Date
/$env:BUILD_DATE
和Build.Rev
/$env:BUILD_REV
的变量。
相比之下,名为 Date
和 Rev
的变量似乎确实存在 - 如您所述,它们用于 Build.BuildNumber
/ $Env:BUILD_BUILDNUMBER
的默认格式定义构建变量、$(Date:yyyyMMdd)$(Rev:.r)
- 但似乎是 不同的类型,没有公开为 env。 vars.(不像 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"