Como posso obter uma propriedade de um objeto no powershell sem usar parênteses?

12

Muitas vezes eu acho que eu tenho que cercar um comando entre parênteses e, em seguida, use o operador de acesso a propriedade (ponto-sintaxe) para obter o valor de uma propriedade. Isso é bastante irritante, já que tenho que voltar ao início da linha quando prefiro continuar digitando onde estou. É especialmente irritante quando estou no meio de um conjunto maior de comandos canalizados.

Exemplo

Se eu tiver o seguinte comando

Get-PSProvider FileSystem

e eu quero obter a propriedade Drives , eu teria que cercar o comando inteiro entre parênteses primeiro:

(Get-PSProvider FileSystem).Drives

Existe uma maneira mais rápida de obter o valor de uma única propriedade?

    
por brianpeiris 26.12.2011 / 23:46

1 resposta

14

Você pode usar Select-Object -ExpandProperty <property name> . Isso pode ser encurtado usando o alias select e digitando apenas parte do nome da propriedade:

Get-PSProvider FileSystem| select -exp Drives

Um benefício adicional para este método é que você pode acessar uma única propriedade para vários objetos.

Isso não retornará nada ( Atualização: Isso funciona no PowerShell v3.):

(Get-PSProvider).Drives

No entanto, isso retornará as unidades para todos os provedores:

Get-PSProvider| select -exp Drives
    
por 27.12.2011 / 03:54

Tags