Come posso ottenere una proprietà di un oggetto in PowerShell senza usare le parentesi?


13

Trovo spesso che devo racchiudere un comando tra parentesi e quindi utilizzare l'operatore di accesso alla proprietà (sintassi punto) per ottenere il valore di una proprietà. Questo è piuttosto fastidioso poiché devo tornare all'inizio della riga quando preferisco continuare a digitare dove sono. È particolarmente fastidioso quando sono nel mezzo di una serie più ampia di comandi convogliati.

Esempio

Se ho il seguente comando

Get-PSProvider FileSystem

e voglio ottenere la Drivesproprietà, dovrei prima circondare l'intero comando tra parentesi:

(Get-PSProvider FileSystem).Drives

C'è un modo più veloce per ottenere il valore di una singola proprietà?

Risposte:


14

È possibile utilizzare Select-Object -ExpandProperty <property name>. Questo può essere abbreviato usando l'alias selecte digitando solo una parte del nome della proprietà:

Get-PSProvider FileSystem| select -exp Drives

Un ulteriore vantaggio di questo metodo è che è possibile accedere a una singola proprietà per più oggetti.

Questo non restituirà nulla ( Aggiornamento: funziona in PowerShell v3.):

(Get-PSProvider).Drives

Tuttavia, questo restituirà le unità per tutti i provider:

Get-PSProvider| select -exp Drives

Molto interessante. Grazie per la correzione.
soandos,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.