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
我的 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