Переменная Env не распознается

# #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 в параметре «Тип сценария».