Format-Table

Форматирует выходные данные в виде таблицы.

Синтаксис

Format-Table
      [-AutoSize]
      [-RepeatHeader]
      [-HideTableHeaders]
      [-Wrap]
      [[-Property] <Object[]>]
      [-GroupBy <Object>]
      [-View <String>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <String>]
      [-InputObject <PSObject>]
      [<CommonParameters>]

Описание

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

PowerShell использует модули форматирования по умолчанию для определения способа отображения типов объектов. С помощью .ps1xml файлов можно создавать пользовательские представления, отображающие выходную таблицу с указанными свойствами. После создания пользовательского представления используйте параметр View для отображения таблицы с пользовательским представлением. Дополнительные сведения о представлениях см. в разделе about_Format.ps1xml.

Хэш-таблицу можно использовать для добавления вычисляемых свойств в объект перед отображением и указания заголовков столбцов в таблице. Чтобы добавить вычисляемое свойство, используйте параметр Property или GroupBy . Дополнительные сведения о хэш-таблицах см. здесь.

Примеры

Пример 1. Форматирование узла PowerShell

В этом примере отображаются сведения о хост-программе для PowerShell в таблице.

Get-Host | Format-Table -AutoSize

Командлет Get-Host получает объекты System.Management.Automation.Internal.Host.InternalHost , представляющие узел. Объекты отправляются в конвейер Format-Table и отображаются в таблице. Параметр AutoSize настраивает ширину столбцов, чтобы свести к минимуму усечение.

Пример 2. Форматирование процессов по BasePriority

В этом примере процессы отображаются в группах с одинаковым свойством BasePriority .

Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap

Командлет Get-Process получает объекты, представляющие каждый процесс на компьютере, и отправляет их вниз по конвейеру Sort-Object. Объекты сортируются в порядке их свойства BasePriority .

Отсортированные объекты отправляются вниз по конвейеру Format-Table. Параметр GroupBy упорядочивает данные процесса в группы на основе значения свойства BasePriority . Параметр Wrap гарантирует, что данные не усечены.

Пример 3. Форматирование процессов по дате начала

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

Get-Process | Sort-Object StartTime | Format-Table -View StartTime

Get-Process возвращает объекты System.Diagnostics.Process , представляющие процессы, выполняемые на компьютере. Объекты отправляются вниз по конвейеру Sort-Objectи сортируются по свойству StartTime .

Отсортированные объекты отправляются вниз по конвейеру Format-Table. Параметр View задает представление StartTime , определенное в файле PowerShell DotNetTypes.format.ps1xml для объектов System.Diagnostics.Process . Представление StartTime преобразует время начала каждого процесса в короткую дату, а затем группирует процессы по дате начала.

Файл DotNetTypes.format.ps1xml содержит представление "Приоритет " для процессов. Вы можете создавать собственные format.ps1xml файлы с настраиваемыми представлениями.

Пример 4. Использование настраиваемого представления для выходных данных таблицы

В этом примере настраиваемое представление отображает содержимое каталога. Пользовательское представление добавляет столбец CreationTime в выходные данные таблицы для объектов System.IO.DirectoryInfo и System.IO.FileInfo , созданных Get-ChildItem.

Пользовательское представление в этом примере было создано из представления, определенного в исходном коде PowerShell. Дополнительные сведения о представлениях и коде, используемом для создания представления этого примера, см. в разделе about_Format.ps1xml.

Get-ChildItem  -Path C:\Test | Format-Table -View mygciview

Directory: C:\Test

Mode                LastWriteTime              CreationTime         Length Name
----                -------------              ------------         ------ ----
d-----        11/4/2019     15:54       9/24/2019     15:54                Archives
d-----        8/27/2019     14:22       8/27/2019     14:22                Drawings
d-----       10/23/2019     09:38       2/25/2019     09:38                Files
-a----        11/7/2019     11:07       11/7/2019     11:07          11345 Alias.txt
-a----        2/27/2019     15:15       2/27/2019     15:15            258 alias_out.txt
-a----        2/27/2019     15:16       2/27/2019     15:16            258 alias_out2.txt

Get-ChildItemвозвращает содержимое текущего каталога. C:\Test Объекты System.IO.DirectoryInfo и System.IO.FileInfo отправляются по конвейеру. Format-Table использует параметр View для указания пользовательского представления mygciview , включающего столбец CreationTime .

Выходные данные Get-ChildItem по умолчанию Format-Table для столбца CreationTime не включаются.

Пример 5. Использование свойств для выходных данных таблицы

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

Get-Service | Format-Table -Property Name, DependentServices

Get-Service получает все службы на компьютере и отправляет объекты System.ServiceProcess.ServiceController вниз по конвейеру. Format-Table использует параметр Property , чтобы указать, что свойства Name и DependentServices отображаются в таблице.

Name и DependentServices являются двумя свойствами типа объекта. Чтобы просмотреть все свойства, выполните следующие действия: Get-Service | Get-Member -MemberType Properties

Пример 6. Форматирование процесса и вычисление времени выполнения

В этом примере отображается таблица с именем процесса и общим временем выполнения для процессов блокнота локального компьютера. Общее время выполнения рассчитывается для каждого процесса путем вычитания времени начала из текущего времени.

Get-Process notepad |
  Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

ProcessName TotalRunningTime
----------- ----------------
notepad     03:20:00.2751767
notepad     00:00:16.7710520

Get-Process получает все процессы блокнота локального компьютера и отправляет объекты вниз по конвейеру. Format-Table отображает таблицу с двумя столбцами: ProcessName, Get-Process свойство и TotalRunningTime, вычисляемое свойство.

Свойство TotalRunningTime задается хэш-таблицей с двумя ключами, меткой и выражением. Ключ Label указывает имя свойства. Ключ выражения задает вычисление. Выражение получает свойство StartTime каждого объекта процесса и вычитает его из результата Get-Date команды, которая получает текущую дату и время.

Пример 7. Форматирование процессов Блокнота

В этом примере используется Get-CimInstance для получения времени выполнения для всех процессов блокнота на локальном компьютере. С параметром ComputerName можно использовать Get-CimInstance для получения сведений с удаленных компьютеров.

$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.CreationDate}}

ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922

Get-CimInstance возвращает экземпляры класса WMI Win32_Process , описывающего все процессы локального компьютера с именем notepad.exe. Объекты процесса хранятся в переменной $Processes .

Объекты процесса в переменной $Processes отправляются вниз по конвейеру Format-Table, в который отображается свойство ProcessName и новое вычисляемое свойство Total Running Time.

Команда присваивает имя нового вычисляемого свойства Total Running Time (Общее время выполнения) ключу Label . Блок скрипта ключа выражения вычисляет время выполнения процесса путем вычитания даты создания процессов из текущей даты. Командлет Get-Date получает текущую дату. Дата создания вычитается из текущей даты. Результатом является значение общего времени выполнения.

Пример 8. Устранение ошибок формата

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

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday

InvalidArgument: Failed to evaluate expression " $_ / $null ".

Параметры

-AutoSize

Указывает, что командлет настраивает размер столбца и количество столбцов на основе ширины данных. По умолчанию размер и количество столбцов определяются представлением.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayError

Указывает, что командлет отображает ошибки в командной строке. Этот параметр можно использовать в качестве помощи отладки при форматировании выражений Format-Table в команде и необходимости устранять неполадки с выражениями.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expand

Задает формат объекта коллекции и объектов в коллекции. Этот параметр предназначен для форматирования объектов, поддерживающих интерфейс ICollection (System.Collections). Значение по умолчанию — EnumOnly. Допустимые значения для этого параметра:

  • ПеречислениеOnly: отображает свойства объектов в коллекции.
  • CoreOnly: отображает свойства объекта коллекции.
  • Оба: отображает свойства объекта коллекции и свойства объектов в коллекции.
Type:String
Accepted values:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Указывает, что командлет направляет командлет на отображение всех сведений об ошибке. Используется с параметром DisplayError или ShowError . По умолчанию при записи объекта ошибки в поток ошибок или поток отображения отображаются только некоторые сведения об ошибке.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

Задает отсортированные выходные данные в отдельных таблицах на основе значения свойства. Например, groupBy можно использовать для перечисления служб в отдельных таблицах в зависимости от их состояния.

Введите выражение или свойство. Параметр GroupBy ожидает сортировки объектов. Sort-Object Используйте командлет перед использованием Format-Table для группировки объектов.

Значение параметра GroupBy может быть новым вычисляемым свойством. Вычисляемое свойство может быть блоком скрипта или хэш-таблицей. Допустимые пары "ключ—значение":

  • Имя (или метка) — <string>
  • Выражение — <string> или <script block>
  • FormatString — <string>

Дополнительные сведения см. в about_Calculated_Properties.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideTableHeaders

Исключает из таблицы заголовки столбцов.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Указывает объекты для форматирования. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Property

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

Если этот параметр опущен, свойства, отображаемые на экране, зависят от свойств первого объекта. Например, если первый объект содержит PropertyA и PropertyB , но последующие объекты имеют PropertyA, PropertyB и PropertyC, будут отображаться только заголовки PropertyA и PropertyB .

Параметр Property является необязательным. Нельзя использовать параметры свойства и представления в той же команде.

Значение параметра Property может быть новым вычисляемым свойством. Вычисляемое свойство может быть блоком скрипта или хэш-таблицей. Допустимые пары "ключ—значение":

  • Имя (или метка) <string>
  • Выражение — <string> или <script block>
  • FormatString — <string>
  • Ширина — <int32> должна быть больше 0
  • Выравнивание — значение может быть Left, Centerили Right

Дополнительные сведения см. в about_Calculated_Properties.

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-RepeatHeader

Повторяет отображение заголовка таблицы после каждого полноэкранного экрана. Повторяющийся заголовок полезен, если выходные данные передаются в пейджер, например less или more разбиение на страницы с помощью средства чтения с экрана.

Этот параметр был добавлен в PowerShell 6.2.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ShowError

Этот параметр отправляет ошибки через конвейер. Этот параметр можно использовать в качестве помощи отладки при форматировании выражений Format-Table в команде и необходимости устранять неполадки с выражениями.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

Начиная с PowerShell 6 представления по умолчанию определяются в исходном коде PowerShell C# . Файлы *.format.ps1xml из PowerShell 5.1 и более ранних версий не существуют в PowerShell 6 и более поздних версиях.

Параметр View позволяет указать альтернативный формат или пользовательское представление для таблицы. Вы можете использовать представления PowerShell по умолчанию или создавать пользовательские представления. Дополнительные сведения о создании пользовательского представления см. в разделе about_Format.ps1xml.

Альтернативные и настраиваемые представления для параметра View должны использовать формат таблицы, в противном случае завершается Format-Table сбоем. Если альтернативное представление является списком, используйте Format-List командлет. Если альтернативное представление не является списком или таблицей, используйте Format-Custom командлет.

Нельзя использовать параметры свойства и представления в той же команде.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wrap

Переносит текст, не помещающийся по ширине столбца, на следующую строку. По умолчанию текст, не уместившийся по ширине столбца, усекается.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

PSObject

Вы можете отправить любой объект вниз по конвейеру Format-Table.

Выходные данные

Microsoft.PowerShell.Commands.Internal.Format

Format-Table возвращает объекты формата, представляющие таблицу.