ForEach и $ _ пустой результат - PullRequest
0 голосов
/ 29 февраля 2020

Моя 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 $_ }) Я получаю что-то вроде:

enter image description here

Прежде всего, я не понимаю, почему в верхнем левом углу есть [ , поскольку я печатаю только объекты внутри массива, а не сам массив. Во-вторых, я не могу понять, почему цикл не печатает свойство name объектов, когда я пишу $containers.ForEach({ echo $_."name" }): он ничего не печатает, вывод пустой.

1 Ответ

0 голосов
/ 29 февраля 2020

хорошо, потому что вы получаете json, а не объект, вы должны сделать это:

$containers = $(...) | ConvertFrom-Json -Depth 5
$containers.foreach{ $_.name } # dont need echo, just a waste of characters
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...