Panoramica dei file di formattazione

Il formato di visualizzazione per gli oggetti restituiti dai comandi (cmdlet, funzioni e script) viene definito usando i file di formattazione (file format.ps1xml). Molti di questi file vengono forniti da PowerShell per definire il formato di visualizzazione per gli oggetti restituiti dai comandi forniti da PowerShell, ad esempio l'oggetto System.Diagnostics.Process restituito dal Get-Process cmdlet. Tuttavia, è anche possibile creare file di formattazione personalizzati per sovrascrivere i formati di visualizzazione predefiniti oppure è possibile scrivere un file di formattazione personalizzato per definire la visualizzazione degli oggetti restituiti dai propri comandi.

Importante

I file di formattazione non determinano gli elementi di un oggetto restituiti alla pipeline. Quando un oggetto viene restituito alla pipeline, tutti i membri di tale oggetto sono disponibili anche se alcuni non vengono visualizzati.

PowerShell usa i dati in questi file di formattazione per determinare cosa viene visualizzato e come vengono formattati i dati visualizzati. I dati visualizzati possono includere le proprietà di un oggetto o il valore di uno script. Gli script vengono usati se si vuole visualizzare un valore non disponibile direttamente dalle proprietà di un oggetto, ad esempio aggiungendo il valore di due proprietà di un oggetto e quindi visualizzando la somma come parte dei dati. La formattazione dei dati visualizzati viene eseguita definendo le visualizzazioni per gli oggetti da visualizzare. È possibile definire una singola vista per ogni oggetto, una singola vista per più oggetti oppure più viste per lo stesso oggetto. Non esiste alcun limite al numero di visualizzazioni che è possibile definire.

Funzionalità comuni dei file di formattazione

Ogni file di formattazione può definire i componenti seguenti che possono essere condivisi tra tutte le viste definite dal file:

  • Impostazione di configurazione predefinita, ad esempio se i dati visualizzati nelle righe delle tabelle verranno visualizzati nella riga successiva se i dati sono più lunghi della larghezza della colonna. Per altre informazioni su queste impostazioni, vedere Elemento Wrap per TableRowEntry.

  • Set di oggetti che possono essere visualizzati da una delle visualizzazioni del file di formattazione. Per altre informazioni su questi set ,definiti set di selezione, vedere Definizione di set di oggetti.

  • Controlli comuni che possono essere usati da tutte le visualizzazioni del file di formattazione. I controlli offrono un controllo più fine sulla modalità di visualizzazione dei dati. Per altre informazioni sui controlli, vedere Definizione di controlli personalizzati.

Formattazione delle visualizzazioni

Le viste di formattazione possono visualizzare gli oggetti in un formato di tabella, un formato elenco, un formato wide e un formato personalizzato. Nella maggior parte dei casi, ogni definizione di formattazione è descritta da un set di tag XML che descrivono la visualizzazione. Ogni vista contiene il nome della vista, gli oggetti che usano la vista e gli elementi della vista, ad esempio le informazioni sulla colonna e sulla riga per una vista tabella.

Vista tabella

Elenca le proprietà di un oggetto o di un valore del blocco di script in una o più colonne. Ogni colonna rappresenta una singola proprietà dell'oggetto o un valore di script. È possibile definire una vista tabella che visualizza tutte le proprietà di un oggetto, un subset delle proprietà di un oggetto o una combinazione di proprietà e valori di script. Ogni riga della tabella rappresenta un oggetto restituito. La creazione di una vista tabella è molto simile a quando si esegue la pipe di un oggetto al Format-Table cmdlet . Per altre informazioni su questa vista, vedere Vista tabella.

Visualizzazione elenco

Elenca le proprietà di un oggetto o di un valore di script in una singola colonna. Ogni riga dell'elenco visualizza un'etichetta facoltativa o il nome della proprietà seguito dal valore della proprietà o dello script. La creazione di una visualizzazione elenco è molto simile al piping di un oggetto al Format-List cmdlet . Per altre informazioni su questa visualizzazione, vedere Visualizzazione elenco.

Wide View

Elenca una singola proprietà di un oggetto o un valore di script in una o più colonne. Non è presente alcuna etichetta o intestazione per questa visualizzazione. La creazione di una visualizzazione ampia è molto simile alla creazione di un piping di un oggetto nel Format-Wide cmdlet . Per altre informazioni su questa visualizzazione, vedere Wide View.

Vista personalizzata

Visualizza una visualizzazione personalizzabile delle proprietà degli oggetti o dei valori di script che non rispettano la struttura rigida delle viste tabella, delle visualizzazioni elenco o delle viste estese. È possibile definire una visualizzazione personalizzata autonoma oppure una vista personalizzata usata da un'altra vista, ad esempio una vista tabella o una visualizzazione elenco. La creazione di una visualizzazione personalizzata è molto simile alla creazione di un piping di un oggetto nel Format-Custom cmdlet . Per altre informazioni su questa visualizzazione, vedere Visualizzazione personalizzata.

Componenti di una vista

Gli esempi XML seguenti illustrano i componenti XML di base di una vista. I singoli elementi XML variano a seconda della vista che si vuole creare, ma i componenti di base delle viste sono tutti uguali.

Per iniziare, ogni vista ha un elemento che specifica un nome descrittivo Name usato per fare riferimento alla vista. Elemento che definisce gli oggetti .NET visualizzati dalla visualizzazione e un elemento di controllo ViewSelectedBy che definisce la visualizzazione.

<ViewDefinitions>
  <View>
    <Name>NameOfView</Name>
    <ViewSelectedBy>...</ViewSelectedBy>
    <TableControl>...</TableControl>
  </View>
  <View>
    <Name>NameOfView</Name>
    <ViewSelectedBy>...</ViewSelectedBy>
    <ListControl>...</ListControl>
  <View>
  <View>
    <Name>NameOfView</Name>
    <ViewSelectedBy>...</ViewSelectedBy>
    <WideControl>...</WideControl>
  <View>
  <View>
    <Name>NameOfView</Name>
    <ViewSelectedBy>...</ViewSelectedBy>
    <CustomControl>...</CustomControl>
  </View>
</ViewDefinitions>

All'interno dell'elemento di controllo è possibile definire uno o più elementi entry. Se si usano più definizioni, è necessario specificare gli oggetti .NET che usano ogni definizione. In genere è necessaria una sola voce, con una sola definizione, per ogni controllo.

<ListControl>
  <ListEntries>
    <ListEntry>
      <EntrySelectedBy>...</EntrySelectedBy>
      <ListItems>...</ListItems>
    <ListEntry>
    <ListEntry>
        <EntrySelectedBy>...</EntrySelectedBy>
      <ListItems>...</ListItems>
    <ListEntry>
    <ListEntry>
        <EntrySelectedBy>...</EntrySelectedBy>
      <ListItems>...</ListItems>
    <ListEntry>
  </ListEntries>
</ListControl>

All'interno di ogni elemento entry di una vista si specificano gli elementi elemento che definiscono le proprietà o gli script .NET visualizzati da tale vista.


<ListItems>
  <ListItem>...</ListItem>
  <ListItem>...</ListItem>
  <ListItem>...</ListItem>
</ListItems>

Come illustrato negli esempi precedenti, il file di formattazione può contenere più viste, una vista può contenere più definizioni e ogni definizione può contenere più elementi.

Esempio di vista tabella

Nell'esempio seguente vengono illustrati i tag XML usati per definire una vista tabella contenente due colonne. L'elemento ViewDefinitions è l'elemento contenitore per tutte le visualizzazioni definite nel file di formattazione. L'elemento View definisce la tabella, l'elenco, la visualizzazione wide o personalizzata specifica. All'interno di ogni elemento View, l'elemento Name specifica il nome della vista, l'elemento ViewSelectedBy definisce gli oggetti che usano la vista e i diversi elementi di controllo , ad esempio l'elemento illustrato nell'esempio seguente, definiscono il tipo TableControl di visualizzazione.

<ViewDefinitions>
  <View>
    <Name>Name of View</Name>
    <ViewSelectedBy>
      <TypeName>Object to display using this view</TypeName>
      <TypeName>Object to display using this view</TypeName>
    </ViewSelectedBy>
    <TableControl>
      <TableHeaders>
        <TableColumnHeader>
          <Width></Width>
        </TableColumnHeader>
        <TableColumnHeader>
          <Width></Width>
        </TableColumnHeader>
      </TableHeaders>
      <TableRowEntries>
        <TableRowEntry>
          <TableColumnItems>
            <TableColumnItem>
              <PropertyName>Header for column 1</PropertyName>
            </TableColumnItem>
            <TableColumnItem>
              <PropertyName>Header for column 2</PropertyName>
            </TableColumnItem>
          </TableColumnItems>
        </TableRowEntry>
      </TableRowEntries>
    </TableControl>
  </View>
</ViewDefinitions>

Vedere anche

Creazione di una visualizzazione elenco

Creazione di una visualizzazione tabella

Creazione di una visualizzazione più ampia

Creazione dei controlli personalizzati

Scrittura di un file di formattazione e tipi di PowerShell