• 11/22/2019
  • 5 minuti per leggere
    • j
    • B
    • m

PowerShell è un set di cmdlet che consentono di controllare come vengono visualizzate le proprietà forparticular oggetti. I nomi di tutti i cmdlet iniziano con il verboFormat., Ti permettono di selezionarequali proprietà vuoi mostrare.

Get-Command -Verb Format -Module Microsoft.PowerShell.Utility

Questo articolo descrive i cmdletFormat-Wide,Format-ListeFormat-Table.

Ogni tipo di oggetto in PowerShell ha proprietà predefinite che vengono utilizzate quando non si specifica whichproperties da visualizzare. Ogni cmdlet utilizza anche lo stesso parametro di proprietà per specificare whichproperties che si desidera visualizzare., PoichéFormat-Wide mostra solo una singola proprietà, il suo Propertyparameter accetta solo un singolo valore, ma i parametri della proprietà diFormat-List eFormat-Tableaccettano un elenco di nomi di proprietà.

In questo esempio, l’output predefinito di Get-Process cmdlet mostra che abbiamo due istanze diInternet Explorer in esecuzione.,

Get-Process -Name iexplore

Il formato predefinito per gli oggetti di processo visualizza le proprietà mostrate qui:

 NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- ----------- 32 25.52 10.25 13.11 12808 1 iexplore 52 11.46 26.46 3.55 21748 1 iexplore

Utilizzando il formato per l’output di un singolo elemento

IlFormat-Wide cmdlet, per impostazione predefinita, visualizza solo la proprietà un oggetto., I dati associati ad ogni oggetto viene visualizzato in una singola colonna:

Get-Command -Verb Format | Format-Wide
Format-Custom Format-HexFormat-List Format-TableFormat-Wide

È anche possibile specificare un non-proprietà di default:

Get-Command -Verb Format | Format-Wide -Property Noun
Custom HexList TableWide

Controllo Formato-Ampio Display con Colonna

Con il Format-Wide cmdlet, è possibile solo la visualizzazione di una sola proprietà alla volta. Questo lo rende utile per la visualizzazione di elenchi di grandi dimensioni in più colonne.,

Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex ListTable Wide

Uso del Formato-Elenco Vista

Format-List cmdlet consente di visualizzare un oggetto in forma di elenco, con ogni proprietà labeledand visualizzato su una riga separata:

Get-Process -Name iexplore | Format-List
Id : 12808Handles : 578CPU : 13.140625SI : 1Name : iexploreId : 21748Handles : 641CPU : 3.59375SI : 1Name : iexplore

È possibile specificare proprietà come molti come si desidera:

Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id

di Ottenere Informazioni Dettagliate Utilizzando Format-List con i caratteri Jolly

Format-List cmdlet consente di utilizzare un carattere jolly come il valore del relativo parametro di Proprietà., Thislets si visualizzano informazioni dettagliate. Spesso, gli oggetti includono più informazioni di quelle necessarie, motivo per cui PowerShell non mostra tutti i valori delle proprietà per impostazione predefinita. Per mostrare tutte le proprietà di un oggetto, utilizzare il comandoFormat-List -Property *. Il seguente comando genera oltre 60 linee di output per un singolo processo:

Get-Process -Name iexplore | Format-List -Property *

Sebbene il comando Format-List sia utile per mostrare i dettagli, se si desidera una panoramica dell’output che include molti elementi, una visualizzazione tabulare più semplice è spesso più utile.,

Utilizzo di Format-Table per l’output tabulare

Se si utilizza il cmdletFormat-Table senza nomi di proprietà specificati per formattare l’output del comandoGet-Process, si ottiene esattamente lo stesso output che si ottiene senza un cmdletFormat. Di default, PowerShell visualizza gli oggetti di processo in un formato tabellare.

Get-Service -Name win* | Format-Table

Miglioramento dell’output Formato-tabella (AutoSize)

Sebbene una vista tabulare sia utile per visualizzare molte informazioni, potrebbe essere difficile interpretare se la visualizzazione è troppo stretta per i dati., Nell’esempio precedente, l’output èstruncated. Se si specifica il parametro AutoSize quando si esegue il comandoFormat-Table, PowerShell calcola le larghezze delle colonne in base ai dati effettivi visualizzati. Questo rende le colonne leggibili.

Get-Service -Name win* | Format-Table -AutoSize

Il cmdletFormat-Table potrebbe ancora troncare i dati, ma si tronca solo alla fine della schermata. Le proprietà, diverse dall’ultima visualizzata, hanno tutte le dimensioni necessarie per la visualizzazione corretta dell’elemento dati theirlongest.,

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -AutoSize

Il comandoFormat-Table presuppone che le proprietà siano elencate in ordine di importanza. Quindi tenta di visualizzare completamente le proprietà più vicine all’inizio. Se il comandoFormat-Table non può visualizzare tutte le proprietà, rimuove alcune colonne dal display. È possibile vedere questo comportamento nell’esempio precedente della proprietà Dependentservices.

Wrapping Format-Output della tabella in colonne (Wrap)

È possibile forzare i dati lunghiFormat-Table per avvolgere all’interno della colonna di visualizzazione utilizzando il Wrapparameter., L’utilizzo del parametro Wrap potrebbe non fare ciò che ci si aspetta, poiché utilizza le impostazioni predefinite se non si specifica anche AutoSize:

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -Wrap

L’utilizzo del parametro Wrap da solo non rallenta molto l’elaborazione. Tuttavia, usingAutoSize per formattare un elenco di file ricorsivo di una struttura di directory di grandi dimensioni può richiedere molto tempo e utilizzare molta memoria prima di visualizzare i primi elementi di output.

Se non sei preoccupato per il carico del sistema, AutoSize funziona bene con il parametro Wrap.,Le colonne iniziali utilizzano ancora la larghezza necessaria per visualizzare gli elementi su una riga, ma la colonna finalcolumn viene avvolta, se necessario.

Nota

Alcune colonne potrebbero non essere visualizzate quando si specificano per prime le colonne più larghe. Per ottenere risultati ottimali,specificare prima gli elementi di dati più piccoli.

Nell’esempio seguente, specifichiamo prima le proprietà più ampie.

Get-Process -Name iexplore | Format-Table -Wrap -AutoSize -Property FileVersion,Path,Name,Id

Anche con il wrapping, la colonna Id finale viene omessa:

Organizing Table Output (-GroupBy)

Un altro parametro utile per il controllo dell’output tabulare è GroupBy., Elenchi tabulari più lunghi inparticolare può essere difficile da confrontare. Il parametro GroupBy raggruppa l’output in base a un propertyvalue. Ad esempio, possiamo raggruppare i servizi per StartType per un’ispezione più semplice, omettendo il valore di Starttype dall’elenco delle proprietà:

Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType