PowerShell Equivilent для Select-Object "-ExpandProperty" для Где-объекта для запроса вложенных объектов - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть следующий код:

$results = Invoke-RestMethod -Uri "XXX" -Credential $cred 

$results.value | Where-Object releaseDefinition.name -eq "XYZ"

По какой-то причине не возвращает никаких результатов, когда я запускаю эквивалентный запрос "Select-Obejct", проблема становится ясной:

$results.value | Select-Object releaseDefinition.name

Все пусто .. и Google говорит, что мне нужно использовать тег "-ExpandProperty", чтобы сделать это:

$results.value | Select-Object releaseDefinition -ExpandProperty name

Поэтому я пытаюсь сделать то же самое для моего оператора "Where-Object":

$results.value | Where-Object releaseDefinition -ExpandProperty name -eq "XYZ"

и это ошибка ... Потому что это свойство не существует. Поэтому мне нужно найти другой способ выполнения sh эта задача, как я могу выполнить sh код выше без использования этого параметра? Кроме того, почему этот параметр существует в select, а не в предложении where?

1 Ответ

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

Я нашел некоторый обходной путь, если вы заключите свой оператор в скобки и ссылаетесь на базовый элемент ($ _), вы можете получить доступ к элементу на любом уровне объекта:

$results = Invoke-RestMethod -Uri "XXX" -Credential $cred 

$results.value | Where-Object { $_.releaseDefinition.name -eq "XYZ" }
...