ForEach 和 $_ 空结果

ForEach and the $_ empty result

我的 Azure CLI 任务是这样的(... 替换我的 Azure 凭据):

- task: AzureCLI@2
    inputs:
    azureSubscription: ...
    scriptType: pscore
    scriptLocation: "inlineScript"
    inlineScript: |
      $containers=$(az storage container list --connection-string ...)
      $containers.ForEach({ echo $_."name" })

$containers是一组容器,每个容器都有一个name属性;写 $containers.ForEach({ echo $_ }) 我得到类似的东西:

首先,我不明白为什么左上角有[,因为我只打印数组中的对象,而不是数组本身。其次,我无法弄清楚为什么当我写 $containers.ForEach({ echo $_."name" }) 时循环不打印对象的 name 属性:它什么都不打印,输出为空白。

好吧,因为你得到的是 json,而不是一个对象,你应该这样做:

$containers = $(...) | ConvertFrom-Json -Depth 5
$containers.foreach{ $_.name } # dont need echo, just a waste of characters