Поделиться через


Общие сведения о файлах форматирования

Формат отображения для объектов, возвращаемых командами (командлетами, функциями и скриптами), определяется с помощью файлов форматирования (format.ps1xml). Некоторые из этих файлов предоставляются PowerShell для определения формата отображения для этих объектов, возвращаемых командами PowerShell, например объект System.Diagnostics.Process, возвращаемый командлетом Get-Process. Однако вы также можете создать собственные пользовательские файлы форматирования для перезаписи форматов отображения по умолчанию или создать пользовательский файл форматирования, чтобы определить отображение объектов, возвращаемых собственными командами.

Это важно

Файлы форматирования не определяют элементы объекта, возвращаемого в конвейер. Когда объект возвращается в конвейер, все члены этого объекта доступны, даже если некоторые не отображаются.

PowerShell использует данные в этих файлах форматирования, чтобы определить, что отображается и как отформатированы отображаемые данные. Отображаемые данные могут включать свойства объекта или значения скрипта. Скрипты используются, если требуется отобразить некоторое значение, которое недоступно непосредственно из свойств объекта, например добавление значения двух свойств объекта, а затем отображение суммы в виде фрагмента данных. Форматирование отображаемых данных выполняется путем определения представлений для объектов, которые необходимо отобразить. Можно определить одно представление для каждого объекта, можно определить одно представление для нескольких объектов или определить несколько представлений для одного объекта. Количество определяемых представлений не ограничено.

Общие функции файлов форматирования

Каждый файл форматирования может определить следующие компоненты, которые можно совместно использовать для всех представлений, определенных файлом:

  • Параметр конфигурации по умолчанию, например, отображается ли данные в строках таблиц в следующей строке, если данные длиннее ширины столбца. Дополнительные сведения об этих параметрах см. в разделе Элемент оболочки для TableRowEntry.

  • Наборы объектов, которые могут отображаться любым из представлений файла форматирования. Дополнительные сведения об этих наборах (наборы выбора) см. в определении наборов объектов.

  • Общие элементы управления, которые можно использовать всеми представлениями файла форматирования. Элементы управления обеспечивают более точное управление отображением данных. Дополнительные сведения об элементах управления см. в определении пользовательских элементов управления.

Форматирование представлений

Представления форматирования могут отображать объекты в формате таблицы, формате списка, широком формате и пользовательском формате. В большинстве случаев каждое определение форматирования описывается набором XML-тегов, описывающих представление. Каждое представление содержит имя представления, объекты, использующие представление, и элементы представления, такие как сведения о столбцах и строках для представления таблицы.

Представление таблицы

Перечисляет свойства объекта или значения блока скрипта в одном или нескольких столбцах. Каждый столбец представляет одно свойство объекта или значения скрипта. Можно определить представление таблицы, отображающее все свойства объекта, подмножество свойств объекта или сочетание свойств и значений скрипта. Каждая строка таблицы представляет возвращаемый объект. Создание представления таблицы очень похоже на то, что при канале объекта в командлет Format-Table. Дополнительные сведения об этом представлении см. в представлении таблиц.

Представление списка

Перечисляет свойства объекта или значения скрипта в одном столбце. Каждая строка списка отображает необязательную метку или имя свойства, за которым следует значение свойства или скрипта. Создание представления списка очень похоже на отправку объекта в командлет Format-List. Дополнительные сведения об этом представлении см. в представлении списка.

Широкое представление

Выводит одно свойство объекта или значения скрипта в одном или нескольких столбцах. Для этого представления нет метки или заголовка. Создание широкого представления очень похоже на отправку объекта в командлет Format-Wide. Дополнительные сведения об этом представлении см. в расширенных представлений.

Пользовательское представление

Отображает настраиваемое представление свойств объекта или значений скрипта, которые не соответствуют жесткой структуре представлений таблиц, представлений списка или широких представлений. Можно определить автономное пользовательское представление или определить пользовательское представление, используемое другим представлением, например представление таблицы или представления списка. Создание пользовательского представления очень похоже на отправку объекта в командлет Format-Custom. Дополнительные сведения об этом представлении см. в пользовательском представлении.

Компоненты представления

В следующих примерах XML показаны основные компоненты XML представления. Отдельные XML-элементы зависят от того, какое представление нужно создать, но основные компоненты представлений одинаковы.

Для начала каждое представление имеет элемент Name, указывающий понятное имя, используемое для ссылки на представление. элемент ViewSelectedBy, определяющий объекты .NET, отображаемые представлением, и элемент управления , определяющий представление.

<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>

В элементе управления можно определить один или несколько элементов записи. При использовании нескольких определений необходимо указать, какие объекты .NET используют каждое определение. Обычно для каждого элемента управления требуется только одна запись с одним определением.

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

В каждом элементе представления можно указать элемент элементов, определяющих свойства или скрипты .NET, отображаемые в этом представлении.


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

Как показано в предыдущих примерах, файл форматирования может содержать несколько представлений, представление может содержать несколько определений, и каждое определение может содержать несколько элементов.

Пример представления таблицы

В следующем примере показаны XML-теги, используемые для определения представления таблицы, содержащего два столбца. Элемент ViewDefinitions — это элемент контейнера для всех представлений, определенных в файле форматирования. Элемент View определяет определенную таблицу, список, широкий или настраиваемый вид. В каждом элементе View элемент Name указывает имя представления, элемент ViewSelectedBy определяет объекты, использующие представление, и различные элементы управления (например, элемент TableControl, показанный в следующем примере), определяют тип представления.

<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>

См. также

создание представления списка

создание представления таблицы

создание широкого представления

создание пользовательских элементов управления

написание файла форматирования и типов PowerShell