Powershell 如何在VSTS中为环境变量设置新值
我们使用了env:msg合并,但它在variables选项卡中使用了默认值。无法分配值。即使我们在上一步中看到该值 分配值的代码Powershell 如何在VSTS中为环境变量设置新值,powershell,automation,azure-devops,azure-pipelines-build-task,Powershell,Automation,Azure Devops,Azure Pipelines Build Task,我们使用了env:msg合并,但它在variables选项卡中使用了默认值。无法分配值。即使我们在上一步中看到该值 分配值的代码 $env:msgmerge = 'Git Merge to Master After Deployment Repo:' + "$(reponame)" Write-Output $env:msgmerge 使用$env:创建的环境变量是流程变量,因此当流程退出时,它们将丢失,并且我们无法从另一个流程(PowerShell实例)访问它们。Ahh解决了这个问题,我们
$env:msgmerge = 'Git Merge to Master After Deployment Repo:' + "$(reponame)"
Write-Output $env:msgmerge
使用$env:创建的环境变量是流程变量,因此当流程退出时,它们将丢失,并且我们无法从另一个流程(PowerShell实例)访问它们。Ahh解决了这个问题,我们需要使用vsts方法
$msgmerge = 'Git Merge to Master After Deployment Repo:' + "$(reponame)"
Write-Output $msgmerge
Write-Host ("##vso[task.setvariable variable=msgmerge;]$msgmerge")
使用
写主机
有什么意义?您的问题是环境变量。即使如此,为什么要使用写主机
,而不是写输出
?至少Write Output
可以让您对返回的内容进行处理。似乎您希望为环境变量设置新值。并为任务组使用新值(在PowerShell任务之后)。因此,您应该使用Write Host“##vso[task.setvariable=variablename]value”
。您也可以在文档中参考powershell脚本。