Доступны ли переменные конвейера в задаче PowerShell в Azure DevOps? - PullRequest
0 голосов
/ 16 июня 2020

У меня есть этот сценарий PowerShell, который считывает некоторые переменные среды и выводит их:

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

Эти переменные определены как переменные конвейера, а также в группах переменных в конвейере выпуска Azure DevOps.

При запуске внутри задачи PowerShell , определенной как Inline , этот сценарий работает должным образом. Однако тот же самый сценарий не будет работать, если задача 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.

Есть ли способ сделать переменные среды доступными для скрипта «Файл», как они есть для «встроенного»?

Ответы [ 2 ]

2 голосов
/ 16 июня 2020

Я не могу ответить на часть Azure, но ваш код недействителен для того, что вы пытаетесь. Вам необходимо включить $ в блоки $().

Как и сейчас, Powershell пытается вызвать функцию с именем tenantName или найти приложение с именем tenantName.exe для вызова.

Это будет работать:

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

Или даже лучше:

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

Синтаксис $() используется, если вам нужно вставить какой-то фактический код в строку, например, ссылка на свойство, например Write-Host "Hello $($user.name)!"

0 голосов
/ 16 июня 2020

Мне удалось это исправить, частично благодаря ответу @Cbsch. Действительно, синтаксис моего сценария PowerShell был неправильным, но изменение $(tenantName) на $tenantName не устранило проблему, поскольку $tenantName не существовало. Мне пришлось читать его из переменных среды с синтаксисом $env:<variableName>.

Фиксированный скрипт:

Write-Host "name: $env:tenantName version: $env:versionRelease url: $env:urlApplication"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...