gpt4 book ai didi

powershell - 如何在Powershell脚本中访问预定义的发布管理变量?

转载 作者:行者123 更新时间:2023-12-02 23:25:38 25 4
gpt4 key购买 nike

根据documentation,有许多预定义的变量可用于在版本管理环境中运行的任务。如何从Powershell脚本中访问这些变量?

例如:System.TeamProject变量已定义,并且应返回当前的TFS TeamProject。但是,当我写:

Write-Host "environment var: $env:System.TeamProjectId"

日志文件中的输出为:
2016-06-07T09:26:49.5537161Z environment var: release.TeamProject

但是,在 Initialize日志文件中,显示以下内容:
4 2016-06-07T09:26:40.4121001Z Environment variables available are below.  Note that these environment variables can be referred to in the task (in the ReleaseDefinition) by replacing "_" with "." e.g. AGENT_NAME environment variable can be referenced using Agent.Name in the ReleaseDefinition: 
...
34 2016-06-07T09:26:40.4277002Z [SYSTEM_COLLECTIONID] --> [2043d9ba-7ec9-43f0-8e6c-96a8b28f55d8]
35 2016-06-07T09:26:40.4277002Z [SYSTEM_TEAMPROJECTID] --> [9718773d-2aee-4625-91c6-80de16301479]
36 2016-06-07T09:26:40.4277002Z [SYSTEM_TEAMPROJECT] --> [MyProject]
37 2016-06-07T09:26:40.4277002Z [SYSTEM_CULTURE] --> [en-US]

所以这意味着变量在那里。我按照其他地方的建议尝试了 $(System.TeamProject),但是由于 The term ... is not recognized -error而失败。

另外,我在发布定义中自行配置的变量,例如 priority,我可以使用 $env:priority进行访问。

作为一种解决方法,我可以在脚本中创建自己的参数,然后在任务定义的Arguments字段中传递它们,但是这样做不能达到目的。

最佳答案

使用大括号,因为变量名称包含.。例:

PS C:\> ${Env:System.TeamProject} = "Var contents"
PS C:\> ${Env:System.TeamProject}
Var contents
PS C:\> Write-Host "Prefix - $Env:System.TeamProject"
Prefix - .TeamProject
PS C:\> Write-Host "Prefix - ${Env:System.TeamProject}"
Prefix - Var contents

关于powershell - 如何在Powershell脚本中访问预定义的发布管理变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37683654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com