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 .

Выходные данные по умолчанию Format-Table для Get-ChildItem не включают столбец 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 и Expression. Ключ Label указывает имя свойства. Ключ Expression задает вычисление. Выражение получает свойство StartTime каждого объекта процесса и вычитает его из результата Get-Date команды, которая получает текущие дату и время.

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

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

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

Команда присваивает ключу Label имя нового вычисляемого свойства Total Running Time (Общее время выполнения). Блок скрипта ключа выражения вычисляет время выполнения процесса путем вычитания даты создания процессов из текущей даты. Командлет 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
Failed to evaluate expression " $_ / $null ".
+ CategoryInfo          : InvalidArgument: (11/27/2019 12:52:38:PSObject) [], RuntimeException
+ FullyQualifiedErrorId : PSPropertyExpressionError

Параметры

-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. Ниже приведены допустимые значения для этого параметра.

  • EnumOnly: отображает свойства объектов в коллекции.
  • 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 и View в одной команде.

Значение параметра 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 разбиение на страницы с помощью средства чтения с экрана.

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 командлет .

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

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 возвращает объекты форматирования, представляющие таблицу.