【问题标题】:Env variable not being recognized未识别环境变量
【发布时间】:2021-11-01 20:47:25
【问题描述】:

CICD:Azure 开发运营
任务:Azure CLI
脚本位置:内联脚本
任务版本:1
代理:自托管
语言:围棋

当我从 Azure Pipeline 传递 env 变量时,我遇到了一个奇怪的问题。

命令(内联脚本):-

$env:ENV="FOO"

输出:-

2021-09-03T13:49:28.9213455Z 
2021-09-03T13:49:28.9214265Z c:\Agent\_work\r1\a>$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\_temp\azureclitaskscript1630676963575.bat' failed with exit code 1

相同的命令在本地 VM PowerShell 中运行良好,但不确定为什么它不能来自 Pipeline。有什么建议吗?

注意:目录路径仅是正确的。

【问题讨论】:

  • 您正在编写 PowerShell,但它正在作为 BATCH 执行。

标签: powershell go azure-devops


【解决方案1】:

脚本似乎在.bat 中,而$env:ENV=... 不是受支持的bat 命令。

【讨论】:

    【解决方案2】:

    $env:ENV="FOO"

    此脚本是 PowerShell 脚本。

    您需要在 Azure CLI 任务中指定使用 PowerShell 来运行脚本。

    在 Azure CLI task V1 中,似乎没有实现这一点的选项。

    我建议你可以使用 Azure CLI 任务版本 2:

    - task: AzureCLI@2
      displayName: 'Azure CLI '
      inputs:
        azureSubscription: xxx
        scriptType: ps
        scriptLocation: inlineScript
        inlineScript: '$env:ENV="FOO"'
    

    【讨论】:

    • 收到以下错误“脚本失败并出现错误:错误:无法找到可执行文件:'powershell'。请验证文件路径是否存在或文件可以在 PATH 指定的目录中找到环境变量。还要验证该文件是否具有可执行文件的有效扩展名。"
    • @Learner。您使用的是 Windows 代理还是 Linux 代理?
    • 使用 Windows 自托管代理。在“脚本类型”选项中选择 powershell 核心后,这工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多