我使用的是 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上的建议.
在 AzureCLI@2
您选择脚本类型。
脚本类型: PowerShellPowerShell CoreBatShell脚本。在Linux代理上运行时选择bashpscore脚本,在Windows代理上运行时选择batchpspscore脚本。PowerShell Core脚本可以在跨平台代理(Linux、macOS或Windows)上运行。
此外,在Linux和Windows中可能会出现一些差异(这个问题与 call
语句),但如果你选择了那里 pscore
例如,你应该去掉'call`语句。
所以,请提供更多信息,在什么系统和终端上运行这个脚本,以给你更多的帮助。
我运行你的脚本时没有 call
在powershell中,一切正常。请尝试用这种方式运行。