Azure DevOps中的PowerShell任务中是否有可用的管道变量?

Azure DevOps中的PowerShell任务中是否有可用的管道变量?,powershell,azure-devops,environment-variables,Powershell,Azure Devops,Environment Variables,我有一个PowerShell脚本,它读取一些环境变量并输出它们: Write-Host "name: $(tenantName) version: $(versionRelease) url: $(urlApplication)" 这些变量被定义为管道变量,也在Azure DevOps发布管道的变量组中 在定义为内联的中运行时,此脚本按预期工作。但是,如果PowerShell任务配置了文件路径,则相同的脚本将不起作用。在这种情况下,找不到tenantNameenv变量: tenantName

我有一个PowerShell脚本,它读取一些环境变量并输出它们:

Write-Host "name: $(tenantName) version: $(versionRelease) url: $(urlApplication)"
这些变量被定义为管道变量,也在Azure DevOps发布管道的变量组中

在定义为内联的中运行时,此脚本按预期工作。但是,如果PowerShell任务配置了文件路径,则相同的脚本将不起作用。在这种情况下,找不到
tenantName
env变量:

tenantName : The term 'tenantName' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

有没有办法使环境变量对“文件”脚本可用,就像它们对“内联”脚本可用一样?

我无法回答其中的Azure部分,但您的代码对您正在尝试的内容无效。您需要将
$
包含在
$()
块中

现在,Powershell正在尝试调用名为
tenantName
的函数,或查找名为
tenantName.exe
的应用程序进行调用

这将有助于:

Write Host”名称:$($tenantName)版本:$($versionRelease)url:$($urlApplication)
或者更好:

Write Host“name:$tenantName version:$versionRelease url:$urlApplication”

如果您需要将一些实际代码放入字符串中,如引用属性,如编写主机“Hello$($user.name)!”我设法修复了它,部分原因是@Cbsch的回答。事实上,我的PowerShell脚本的语法不正确,但是将
$(tenantName)
更改为
$tenantName
并没有解决问题,因为
$tenantName
不存在。我必须用
$env:
语法从环境变量中读取它

固定脚本:

Write-Host "name: $env:tenantName version: $env:versionRelease url: $env:urlApplication"

非常感谢在这里分享这个解决方案。你可以,这样其他人就可以直接知道这是工作。