Información general del archivo de formato
El formato de presentación de los objetos devueltos por comandos (cmdlets, funciones y scripts) se define mediante archivos de formato (archivos format.ps1xml). PowerShell proporciona varios de estos archivos para definir el formato de presentación de los objetos devueltos por los comandos proporcionados por PowerShell, como el objeto System.Diagnostics.Process devuelto por el Get-Process cmdlet. Sin embargo, también puede crear sus propios archivos de formato personalizados para sobrescribir los formatos de presentación predeterminados o puede escribir un archivo de formato personalizado para definir la presentación de los objetos devueltos por sus propios comandos.
Importante
Los archivos de formato no determinan los elementos de un objeto que se devuelven a la canalización. Cuando se devuelve un objeto a la canalización, todos los miembros de ese objeto están disponibles incluso si no se muestran algunos.
PowerShell usa los datos de estos archivos de formato para determinar qué se muestra y cómo se formatearán los datos mostrados. Los datos mostrados pueden incluir las propiedades de un objeto o el valor de un script. Los scripts se usan si desea mostrar algún valor que no está disponible directamente desde las propiedades de un objeto, como agregar el valor de dos propiedades de un objeto y, a continuación, mostrar la suma como un fragmento de datos. El formato de los datos mostrados se realiza mediante la definición de vistas para los objetos que desea mostrar. Puede definir una vista única para cada objeto, puede definir una vista única para varios objetos o puede definir varias vistas para el mismo objeto. No hay ningún límite en el número de vistas que se pueden definir.
Características comunes de los archivos de formato
Cada archivo de formato puede definir los siguientes componentes que se pueden compartir entre todas las vistas definidas por el archivo:
Valor de configuración predeterminado, por ejemplo, si los datos mostrados en las filas de tablas se mostrarán en la línea siguiente si los datos son más largos que el ancho de la columna. Para obtener más información sobre esta configuración, vea Wrap Element for TableRowEntry.
Conjuntos de objetos que puede mostrar cualquiera de las vistas del archivo de formato. Para obtener más información sobre estos conjuntos (denominados conjuntos de selección), vea Definir conjuntos de objetos.
Controles comunes que pueden usar todas las vistas del archivo de formato. Los controles le dan un control más preciso sobre cómo se muestran los datos. Para obtener más información sobre los controles, vea Definición de controles personalizados.
Aplicar formato a las vistas
Las vistas de formato pueden mostrar objetos en formato de tabla, formato de lista, formato ancho y formato personalizado. En su mayor parte, cada definición de formato se describe mediante un conjunto de etiquetas XML que describen la vista. Cada vista contiene el nombre de la vista, los objetos que usan la vista y los elementos de la vista, como la información de columna y fila de una vista de tabla.
Vista de tabla
Enumera las propiedades de un objeto o un valor de bloque de script en una o varias columnas. Cada columna representa una sola propiedad del objeto o un valor de script. Puede definir una vista de tabla que muestre todas las propiedades de un objeto, un subconjunto de las propiedades de un objeto o una combinación de propiedades y valores de script. Cada fila de la tabla representa un objeto devuelto.
La creación de una vista de tabla es muy similar a cuando se canalizar un objeto al Format-Table cmdlet . Para obtener más información sobre esta vista, vea Table View.
Vista de lista
Enumera las propiedades de un objeto o un valor de script en una sola columna. Cada fila de la lista muestra una etiqueta opcional o el nombre de propiedad seguido del valor de la propiedad o script. La creación de una vista de lista es muy similar a la canalización de un objeto al Format-List cmdlet . Para obtener más información sobre esta vista, vea Vista de lista.
Vista amplia
Enumera una sola propiedad de un objeto o un valor de script en una o varias columnas. No hay ninguna etiqueta ni encabezado para esta vista. La creación de una vista amplia es muy similar a la canalización de un objeto al Format-Wide cmdlet . Para obtener más información sobre esta vista, vea Wide View.
Vista personalizada
Muestra una vista personalizable de propiedades de objeto o valores de script que no cumplen la estructura rígida de vistas de tabla, vistas de lista o vistas anchas. Puede definir una vista personalizada independiente, o bien puede definir una vista personalizada que otra vista usa, como una vista de tabla o una vista de lista.
La creación de una vista personalizada es muy similar a canalización de un objeto al Format-Custom cmdlet . Para obtener más información sobre esta vista, vea Vista personalizada.
Componentes de una vista
En los siguientes ejemplos XML se muestran los componentes XML básicos de una vista. Los elementos XML individuales varían en función de la vista que quiera crear, pero los componentes básicos de las vistas son todos iguales.
Para empezar, cada vista tiene un elemento que especifica un nombre descriptivo que se Name usa para hacer referencia a la vista. Elemento que define los objetos .NET que muestra la vista y un ViewSelectedBy elemento de control que define la vista.
<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>
Dentro del elemento de control, puede definir uno o varios elementos de entrada. Si usa varias definiciones, debe especificar qué objetos .NET usan cada definición. Normalmente solo se necesita una entrada, con una sola definición, para cada control.
<ListControl>
<ListEntries>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
</ListEntries>
</ListControl>
Dentro de cada elemento de entrada de una vista, especifique los elementos de elemento que definen las propiedades o scripts de .NET que se muestran en esa vista.
<ListItems>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
</ListItems>
Como se muestra en los ejemplos anteriores, el archivo de formato puede contener varias vistas, una vista puede contener varias definiciones y cada definición puede contener varios elementos.
Ejemplo de una vista de tabla
En el ejemplo siguiente se muestran las etiquetas XML utilizadas para definir una vista de tabla que contiene dos columnas. El elemento ViewDefinitions es el elemento contenedor de todas las vistas definidas en el archivo de formato. El elemento View define la tabla, lista, vista amplia o personalizada específica. Dentro de cada elemento View, el elemento Name especifica el nombre de la vista, el elemento ViewSelectedBy define los objetos que usan la vista y los distintos elementos de control (como el elemento que se muestra en el ejemplo siguiente) definen el tipo de la TableControl vista.
<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>
Consulte también
Creación de una vista de lista
Creación de una vista de tabla