我经常发现我必须将命令括在括号中,然后使用属性访问运算符(点语法)来获取属性的值。这相当烦人,因为我不得不回到行首,而我宁愿继续在当前位置输入。当我处于一组较大的管道命令中间时,这尤其烦人。
例子
如果我有以下命令
Get-PSProvider FileSystem
并且我想要获取该Drives
属性,我必须先将整个命令括在括号中:
(Get-PSProvider FileSystem).Drives
有没有更快的方法来获取单个属性的值?
答案1
您可以使用Select-Object -ExpandProperty <property name>
。可以使用别名缩短此值select
,并且仅输入部分属性名称:
Get-PSProvider FileSystem| select -exp Drives
此方法的另一个好处是您可以访问多个对象的单个属性。
这不会返回任何内容(更新:这在 PowerShell v3 中有效。):
(Get-PSProvider).Drives
但是,这将返回所有提供商的驱动器:
Get-PSProvider| select -exp Drives