Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何在VSTS中为环境变量设置新值_Powershell_Automation_Azure Devops_Azure Pipelines Build Task - Fatal编程技术网

Powershell 如何在VSTS中为环境变量设置新值

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:msg合并,但它在variables选项卡中使用了默认值。无法分配值。即使我们在上一步中看到该值

分配值的代码

$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脚本。