$Env:APPVEYOR_REPO_TAG powershell 变量在非标签上的计算结果为真

$Env:APPVEYOR_REPO_TAG powershell variable evaluates to true on non-tags

我有一个 appveyor.yml 定义,其中包含片段

init:
- ps: $Env:LABEL = If ($Env:APPVEYOR_REPO_TAG) { "Tag" + $Env:APPVEYOR_REPO_TAG_NAME } else { "nontaglabel" }

稍后尝试访问 %LABEL% 时,在非标记提交中它包含纯字符串 "Tag"。我希望它包含字符串 "nontaglabel".

在标签提交时,它包含预期的字符串标签,标签名称作为后缀。

如何将环境变量 "nontaglabel" 分配给非标签提交的环境变量?

这是因为 $Env:APPVEYOR_REPO_TAG 在非标记提交上的字符串值为 "false"。因此,($Env:APPVEYOR_REPO_TAG) 被计算为 true,因为字符串值不为 null 或为空。请使用 ($Env:APPVEYOR_REPO_TAG -eq $true)($Env:APPVEYOR_REPO_TAG -eq "true") -- 两者都可以。