# #powershell #go #azure-devops
Вопрос:
CICD: Azure DevOps
Задача: Azure CLI
Расположение сценария: Встроенный сценарий
Версия задачи: 1
Агент: Автономный
Язык: Go
Я сталкиваюсь со странной проблемой, когда передаю переменную env из конвейера Azure.
Команда (Встроенный скрипт):-
$env:ENV="FOO"
Выход:-
2021-09-03T13:49:28.9213455Z
2021-09-03T13:49:28.9214265Z c:Agent_workr1a>$env:ENV="FOO"
**2021-09-03T13:49:28.9219788Z The filename, directory name, or volume label syntax is incorrect.**
2021-09-03T13:49:28.9298991Z ##[error]Script failed with error: Error: The process 'c:Agent_work_tempazureclitaskscript1630676963575.bat' failed with exit code 1
Та же команда отлично работает в локальной виртуальной машине PowerShell, но не уверена, почему она не работает из конвейера. Есть какие-нибудь предложения?
Примечание: Указан ТОЛЬКО правильный путь к каталогу.
Комментарии:
1. Вы пишете PowerShell, но он выполняется в пакетном режиме.
Ответ №1:
Сценарий, похоже .bat
, включен и $env:ENV=...
не является поддерживаемой bat
командой.
Ответ №2:
$env:ENV=»FOO»
Этот сценарий является сценарием PowerShell.
Вам необходимо указать использование PowerShell в задаче Azure CLI для запуска сценария.
В Azure CLI task V1 , похоже, для этого нет возможности.
Я предлагаю вам использовать задачу Azure CLI версии 2:
- task: AzureCLI@2
displayName: 'Azure CLI '
inputs:
azureSubscription: xxx
scriptType: ps
scriptLocation: inlineScript
inlineScript: '$env:ENV="FOO"'
Комментарии:
1. Получение следующей ошибки «Сценарий не удался с ошибкой: Ошибка: Не удалось найти исполняемый файл: «powershell». Пожалуйста, убедитесь, что либо путь к файлу существует, либо файл можно найти в каталоге, указанном переменной среды PATH. Также убедитесь, что файл имеет допустимое расширение для исполняемого файла.»
2. @Ученик. Вы используете агент Windows или агент Linux?
3. Использование автономного агента Windows. Это отлично работает после выбора powershell core в параметре «Тип сценария».