Omówienie plików formatujących
Format wyświetlania dla obiektów zwracanych przez polecenia (polecenia cmdlet, funkcje i skrypty) jest definiowany przy użyciu plików formatowania (pliki format.ps1xml). Kilka z tych plików jest dostarczanych przez program PowerShell w celu zdefiniowania formatu wyświetlania dla obiektów zwracanych przez polecenia programu PowerShell, takich jak obiekt System.Diagnostics.Process zwracany przez Get-Process
polecenie cmdlet . Można jednak również utworzyć własne pliki formatowania niestandardowego w celu zastąpienia domyślnych formatów wyświetlania lub napisać plik formatowania niestandardowego w celu zdefiniowania wyświetlania obiektów zwracanych przez własne polecenia.
Ważne
Pliki formatowania nie określają elementów obiektu, które są zwracane do potoku. Gdy obiekt jest zwracany do potoku, wszystkie elementy członkowskie tego obiektu są dostępne, nawet jeśli niektóre nie są wyświetlane.
Program PowerShell używa danych w tych plikach formatowania, aby określić, co jest wyświetlane i jak są formatowane wyświetlane dane. Wyświetlane dane mogą zawierać właściwości obiektu lub wartość skryptu. Skrypty są używane, jeśli chcesz wyświetlić wartość, która nie jest dostępna bezpośrednio z właściwości obiektu, na przykład dodając wartość dwóch właściwości obiektu, a następnie wyświetlając sumę jako element danych. Formatowanie wyświetlanych danych odbywa się przez zdefiniowanie widoków dla obiektów, które mają być wyświetlane. Można zdefiniować pojedynczy widok dla każdego obiektu, zdefiniować pojedynczy widok dla wielu obiektów lub zdefiniować wiele widoków dla tego samego obiektu. Nie ma żadnego ograniczenia liczby widoków, które można zdefiniować.
Typowe funkcje formatowania plików
Każdy plik formatowania może definiować następujące składniki, które mogą być udostępniane we wszystkich widokach zdefiniowanych przez plik:
Domyślne ustawienie konfiguracji, takie jak to, czy dane wyświetlane w wierszach tabel będą wyświetlane w następnym wierszu, jeśli dane są dłuższe niż szerokość kolumny. Aby uzyskać więcej informacji na temat tych ustawień, zobacz Wrap, element dla TableRowEntry.
Zestawy obiektów, które mogą być wyświetlane przez dowolny widok pliku formatowego. Aby uzyskać więcej informacji o tych zestawach (nazywanych zestawami wyboru), zobacz Definiowanie zestawów obiektów.
Typowe kontrolki, które mogą być używane przez wszystkie widoki pliku formatowego. Kontrolki zapewniają precyzyjne kontrolowanie sposobu wyświetlania danych. Aby uzyskać więcej informacji na temat kontrolek, zobacz Definiowanie kontrolek niestandardowych.
Formatowanie widoków
Widoki formatowania mogą wyświetlać obiekty w formacie tabeli, w formacie listy, w formacie szerokim i niestandardowym. W większości przypadków każda definicja formatowania jest opisana przez zestaw tagów XML opisujących widok. Każdy widok zawiera nazwę widoku, obiekty, które używają widoku, oraz elementy widoku, takie jak informacje o kolumnie i wierszu widoku tabeli.
Widok tabeli
Wyświetla listę właściwości obiektu lub wartości bloku skryptu w co najmniej jednej kolumny. Każda kolumna reprezentuje pojedynczą właściwość obiektu lub wartość skryptu. Można zdefiniować widok tabeli, który wyświetla wszystkie właściwości obiektu, podzbiór właściwości obiektu lub kombinację właściwości i wartości skryptu. Każdy wiersz tabeli reprezentuje zwrócony obiekt.
Tworzenie widoku tabeli jest bardzo podobne do przetwarzania potokowego obiektu do Format-Table
polecenia cmdlet . Aby uzyskać więcej informacji na temat tego widoku, zobacz Widok tabeli.
Widok listy
Wyświetla listę właściwości obiektu lub wartości skryptu w jednej kolumnie. W każdym wierszu listy jest wyświetlana opcjonalna etykieta lub nazwa właściwości, po której następuje wartość właściwości lub skryptu. Tworzenie widoku listy jest bardzo podobne do tworzenia pipingu obiektu do Format-List
polecenia cmdlet . Aby uzyskać więcej informacji na temat tego widoku, zobacz Widok listy.
Szeroki widok
Wyświetla pojedynczą właściwość obiektu lub wartość skryptu w co najmniej jednej kolumny. Dla tego widoku nie ma etykiety ani nagłówka. Tworzenie szerokiego widoku jest bardzo podobne do tworzenia pipingu obiektu do Format-Wide
polecenia cmdlet . Aby uzyskać więcej informacji na temat tego widoku, zobacz Widok szeroki.
Widok niestandardowy
Wyświetla dostosowywalny widok właściwości obiektu lub wartości skryptu, które nie są zgodne z sztywną strukturą widoków tabel, widoków listy lub widoków szerokich. Można zdefiniować autonomiczny widok niestandardowy lub widok niestandardowy używany przez inny widok, taki jak widok tabeli lub widok listy.
Tworzenie widoku niestandardowego jest bardzo podobne do tworzenia pipingu obiektu do Format-Custom
polecenia cmdlet . Aby uzyskać więcej informacji na temat tego widoku, zobacz Widok niestandardowy.
Składniki widoku
W poniższych przykładach XML przedstawiono podstawowe składniki XML widoku. Poszczególne elementy XML różnią się w zależności od widoku, który chcesz utworzyć, ale podstawowe składniki widoków są takie same.
Na początek każdy widok ma element określający przyjazną dla użytkownika nazwę, która jest Name
używana do odwołania się do widoku. element ViewSelectedBy
definiujący, które obiekty .NET są wyświetlane w widoku, oraz element sterujący definiujący widok.
<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>
W elemencie kontrolki można zdefiniować co najmniej jeden element wpisu. Jeśli używasz wielu definicji, musisz określić, które obiekty .NET używają każdej definicji. Zazwyczaj dla każdej kontrolki jest wymagany tylko jeden wpis z tylko jedną definicją.
<ListControl>
<ListEntries>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
</ListEntries>
</ListControl>
W ramach każdego elementu wpisu widoku należy określić elementy elementów definiujące właściwości lub skrypty .NET wyświetlane w tym widoku.
<ListItems>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
</ListItems>
Jak pokazano w poprzednich przykładach, plik formatowania może zawierać wiele widoków, widok może zawierać wiele definicji, a każda definicja może zawierać wiele elementów.
Przykładowy widok tabeli
W poniższym przykładzie przedstawiono tagi XML używane do definiowania widoku tabeli zawierającego dwie kolumny. Element ViewDefinitions jest elementem kontenera dla wszystkich widoków zdefiniowanych w pliku formatowania. Element View definiuje określoną tabelę, listę, szeroki lub niestandardowy widok. W każdym elemencie View element Name określa nazwę widoku, element ViewSelectedBy definiuje obiekty, które używają widoku, a różne elementy sterujące (takie jak element pokazany w poniższym przykładzie) definiują typ TableControl
widoku.
<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>