繁体   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