Översikt över formateringsfiler
Visningsformatet för de objekt som returneras av kommandon (cmdletar, funktioner och skript) definieras med hjälp av formateringsfiler (format.ps1xml
). Flera av dessa filer tillhandahålls av PowerShell för att definiera visningsformatet för de objekt som returneras av Kommandon som tillhandahålls av PowerShell, till exempel System.Diagnostics.Process-objektet som returneras av cmdleten Get-Process
. Du kan dock också skapa egna anpassade formateringsfiler för att skriva över standardvisningsformaten eller skriva en anpassad formateringsfil för att definiera visning av objekt som returneras av dina egna kommandon.
Viktigt!
Formateringsfiler avgör inte elementen i ett objekt som returneras till pipelinen. När ett objekt returneras till pipelinen är alla medlemmar i objektet tillgängliga även om vissa inte visas.
PowerShell använder data i dessa formateringsfiler för att avgöra vad som visas och hur de data som visas formateras. De data som visas kan innehålla egenskaperna för ett objekt eller värdet för ett skript. Skript används om du vill visa ett värde som inte är tillgängligt direkt från egenskaperna för ett objekt, till exempel att lägga till värdet för två egenskaper för ett objekt och sedan visa summan som en datadel. Formatering av de data som visas görs genom att definiera vyer för de objekt som du vill visa. Du kan definiera en enda vy för varje objekt, du kan definiera en enda vy för flera objekt eller definiera flera vyer för samma objekt. Det finns ingen gräns för hur många vyer du kan definiera.
Vanliga funktioner i formateringsfiler
Varje formateringsfil kan definiera följande komponenter som kan delas mellan alla vyer som definieras av filen:
Standardkonfigurationsinställning, till exempel om data som visas i raderna i tabeller visas på nästa rad om data är längre än kolumnens bredd. Mer information om de här inställningarna finns i Wrap-element för TableRowEntry.
Uppsättningar med objekt som kan visas av någon av vyerna i formateringsfilen. Mer information om dessa uppsättningar (kallas markeringsuppsättningar) finns i Definiera uppsättningar med objekt.
Vanliga kontroller som kan användas av alla vyer i formateringsfilen. Med kontroller får du bättre kontroll över hur data visas. Mer information om kontroller finns i Definiera anpassade kontroller.
Formateringsvyer
Formateringsvyer kan visa objekt i tabellformat, listformat, brett format och anpassat format. För det mesta beskrivs varje formateringsdefinition av en uppsättning XML-taggar som beskriver vyn. Varje vy innehåller namnet på vyn, de objekt som använder vyn och elementen i vyn, till exempel kolumn- och radinformation för en tabellvy.
Tabellvy
Visar egenskaperna för ett objekt eller ett skriptblocksvärde i en eller flera kolumner. Varje kolumn representerar en enskild egenskap för objektet eller ett skriptvärde. Du kan definiera en tabellvy som visar alla egenskaper för ett objekt, en delmängd av egenskaperna för ett objekt eller en kombination av egenskaper och skriptvärden. Varje rad i tabellen representerar ett returnerat objekt. Att skapa en tabellvy liknar mycket när du dirigerar ett objekt till cmdleten Format-Table
. Mer information om den här vyn finns i Tabellvy.
Listevy
Visar en lista över egenskaperna för ett objekt eller ett skriptvärde i en enda kolumn. Varje rad i listan visar en valfri etikett eller egenskapsnamnet följt av värdet för egenskapen eller skriptet.
Att skapa en listvy liknar att skicka ett objekt till cmdleten Format-List
. Mer information om den här vyn finns i listvy.
Bred vy
Visar en enda egenskap för ett objekt eller ett skriptvärde i en eller flera kolumner. Det finns ingen etikett eller rubrik för den här vyn. Att skapa en bred vy liknar att skicka ett objekt till cmdleten Format-Wide
. Mer information om den här vyn finns i Wide View.
Anpassad vy
Visar en anpassningsbar vy över objektegenskaper eller skriptvärden som inte följer den fasta strukturen för tabellvyer, listvyer eller breda vyer. Du kan definiera en fristående anpassad vy, eller så kan du definiera en anpassad vy som används av en annan vy, till exempel en tabellvy eller listvy.
Att skapa en anpassad vy liknar att skicka ett objekt till cmdleten Format-Custom
. Mer information om den här vyn finns i anpassad vy.
Komponenter i en vy
Följande XML-exempel visar de grundläggande XML-komponenterna i en vy. De enskilda XML-elementen varierar beroende på vilken vy du vill skapa, men de grundläggande komponenterna i vyerna är likadana.
Till att börja med har varje vy ett Name
element som anger ett användarvänligt namn som används för att referera till vyn. ett ViewSelectedBy
element som definierar vilka .NET-objekt som visas av vyn och en kontroll element som definierar vyn.
<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>
I kontrollelementet kan du definiera en eller flera post element. Om du använder flera definitioner måste du ange vilka .NET-objekt som använder varje definition. Vanligtvis behövs bara en post, med endast en definition, för varje kontroll.
<ListControl>
<ListEntries>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
</ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
</ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
</ListEntry>
</ListEntries>
</ListControl>
I varje postelement i en vy anger du det objekt element som definierar .NET-egenskaper eller skript som visas av den vyn.
<ListItems>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
</ListItems>
Som du ser i föregående exempel kan formateringsfilen innehålla flera vyer, en vy kan innehålla flera definitioner och varje definition kan innehålla flera objekt.
Exempel på en tabellvy
I följande exempel visas DE XML-taggar som används för att definiera en tabellvy som innehåller två kolumner. Elementet ViewDefinitions är containerelementet för alla vyer som definierats i formateringsfilen. Elementet View definierar den specifika tabellen, listan, den breda eller anpassade vyn. I varje View-element anger elementet Name namnet på vyn, elementet ViewSelectedBy definierar de objekt som använder vyn och de olika kontrollelementen (till exempel TableControl
elementet som visas i följande exempel) definierar typen av vy.
<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>