Получить вложенные значения в одну строку - PullRequest
0 голосов
/ 14 апреля 2020

Я новичок в powershell, поэтому у меня возник простой вопрос. Предположим, у меня есть следующий код powershell:

$t = Get-SomeData -someParam someParamValue
$t.SomeProperty.SomeNestedField

Вторая команда, приведенная выше, выведет значение SomeNestedField, которое вложено в свойство t с именем someProperty

Могу ли я объединить эти две строки в одну команду powershell (возможно, через конвейерную передачу), чтобы выходные данные второй команды были получены только из одной команды в целом?

Требование заключается в том, что она следует напечатать значение, а не присваивать его некоторой переменной powershell ..

Возможно, что-то вроде:

Get-SomeData -someParam someParamValue | SomeProperty | SomeNestedField

Некоторая информация, которая может помочь:

Предположим, я изменяю приведенный выше код на это:

$t = Get-SomeData -someParam someParamValue
$u = $t.SomeProperty
$t.GetType()
$u.GetType()

Когда я выполняю $t.GetType(), перечисленный BaseType является классом, но если я делаю $u.GetType(), его BaseType будет указан как System.ValueType

1 Ответ

3 голосов
/ 14 апреля 2020

Вы можете использовать SELECT aka SELECT-OBJECT

Get-SomeData -someParam someParamValue | select -ExpandProperty SomeProperty

Или ()

(Get-SomeData -someParam someParamValue).SomeProperty.SomeNestedField
...