Как я могу получить свойство объекта в powershell без использования скобок?

13

Я часто нахожу, что мне нужно заключить команду в круглые скобки, а затем использовать оператор доступа к свойству (точка-синтаксис), чтобы получить значение свойства. Это довольно раздражает, так как я должен вернуться к началу строки, когда я просто продолжу печатать, где я нахожусь. Это особенно раздражает, когда я нахожусь в середине большого набора переданных команд.

пример

Если у меня есть следующая команда

Get-PSProvider FileSystem

и я хочу получить Drivesсвойство, я должен был бы сначала заключить всю команду в круглые скобки:

(Get-PSProvider FileSystem).Drives

Есть ли более быстрый способ получить значение одного свойства?

brianpeiris
источник

Ответы:

14

Вы можете использовать Select-Object -ExpandProperty <property name>. Это можно сократить, используя псевдоним selectи введя только часть имени свойства:

Get-PSProvider FileSystem| select -exp Drives

Дополнительным преимуществом этого метода является то, что вы можете получить доступ к одному свойству для нескольких объектов.

Это ничего не вернет ( обновление: это работает в PowerShell v3.):

(Get-PSProvider).Drives

Однако это вернет диски для всех провайдеров:

Get-PSProvider| select -exp Drives
Rynant
источник
Очень интересно. Спасибо за исправление.
Soandos