Jak mogę uzyskać właściwość obiektu w PowerShell bez użycia nawiasów?

13

Często stwierdzam, że muszę otoczyć polecenie w nawiasach, a następnie użyć operatora dostępu do właściwości (składnia kropka), aby uzyskać wartość właściwości. Jest to dość irytujące, ponieważ muszę wracać do początku linii, kiedy wolę po prostu pisać dalej, gdzie jestem. Jest to szczególnie denerwujące, gdy jestem w środku większego zestawu poleceń potokowych.

Przykład

Jeśli mam następujące polecenie

Get-PSProvider FileSystem

i chcę uzyskać Driveswłaściwość, musiałbym najpierw otoczyć całe polecenie w nawiasach:

(Get-PSProvider FileSystem).Drives

Czy istnieje szybszy sposób na uzyskanie wartości pojedynczej nieruchomości?

brianpeiris
źródło

Odpowiedzi:

14

Możesz użyć Select-Object -ExpandProperty <property name>. Można to skrócić za pomocą aliasu selecti wpisując tylko część nazwy właściwości:

Get-PSProvider FileSystem| select -exp Drives

Dodatkową korzyścią tej metody jest to, że można uzyskać dostęp do jednej właściwości dla wielu obiektów.

To nic nie zwróci ( aktualizacja: Działa to w PowerShell v3.):

(Get-PSProvider).Drives

Spowoduje to jednak zwrócenie dysków dla wszystkich dostawców:

Get-PSProvider| select -exp Drives
Rynant
źródło
Bardzo interesujące. Dziękuję za poprawę.
soandos