在我的经典管道上的 Azure CLI 任务使用 inlinecript 显示错误

问题描述 投票:0回答:1

我使用的是 Azure CLI任务 在我的Azure 经典的 管道(没有YAML)。管道工作正常,唯一的问题是这个任务显示错误。我使用这个内联脚本来完成这个任务。

$containers = $(call az storage container list --connection-string '...') | ConvertFrom-Json -Depth 5
$containers | where{$_.name -like "..."}
$lastContainers = $containers | Select-Object -Last 5
$containers.ForEach({ If ($_ -notin $lastContainers) {call az storage container delete --name $_.name --connection-string '...' } });

我把我的真实连接字符串替换为 .... 当我运行管道时,我得到了关于最后一个任务(Azure CLI)的这个错误(之前的所有步骤都成功结束)。

D:\a\9\s>$containers = $(call az storage container list --connection-string '...') | ConvertFrom-Json -Depth 5 
'$containers' is not recognized as an internal or external command, operable program or batch file.
##[error]Script failed with error: Error: The process 'D:\a\_temp\azureclitaskscript1587632019088.bat' failed with exit code 255

我有一个类似的YAML管道,使用这个相同的脚本,一切工作都很好。我使用 call 在Azure命令前 按照GitHub上的建议.

azure-devops azure-pipelines azure-powershell azure-pipelines-build-task azure-cli
1个回答
0
投票

AzureCLI@2 您选择脚本类型。

脚本类型: PowerShellPowerShell CoreBatShell脚本。在Linux代理上运行时选择bashpscore脚本,在Windows代理上运行时选择batchpspscore脚本。PowerShell Core脚本可以在跨平台代理(Linux、macOS或Windows)上运行。

此外,在Linux和Windows中可能会出现一些差异(这个问题与 call 语句),但如果你选择了那里 pscore 例如,你应该去掉'call`语句。

所以,请提供更多信息,在什么系统和终端上运行这个脚本,以给你更多的帮助。

我运行你的脚本时没有 call 在powershell中,一切正常。请尝试用这种方式运行。

© www.soinside.com 2019 - 2024. All rights reserved.