Format-Table
Форматирует выходные данные в виде таблицы.
Синтаксис
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>]
[-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>]
[<CommonParameters>]
Описание
Командлет Format-Table
форматирует выходные данные команды в виде таблицы с выбранными свойствами объекта в каждом столбце. Тип объекта определяет макет по умолчанию и свойства, отображаемые в каждом столбце. Для выбора свойств, которые требуется отобразить, можно использовать параметр свойства .
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
не включают столбец CreationTime.Get-ChildItem
Пример 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
Указывает, что командлет настраивает размер столбца и количество столбцов на основе ширины данных. По умолчанию размер и количество столбцов определяются представлением.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DisplayError
Указывает, что командлет отображает ошибки в командной строке. Этот параметр можно использовать в качестве средства отладки при форматировании выражений в команде Format-Table
и необходимости устранять неполадки с выражениями.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Expand
Задает формат объекта коллекции и объектов в коллекции. Этот параметр предназначен для форматирования объектов, поддерживающих интерфейс ICollection (System.Collections). Значение по умолчанию — EnumOnly. Допустимые значения для этого параметра приведены следующим образом:
- Перечисление: отображает свойства объектов в коллекции.
- CoreOnly: отображает свойства объекта коллекции.
- Оба: отображает свойства объекта коллекции и свойства объектов в коллекции.
Тип: | String |
Допустимые значения: | CoreOnly, EnumOnly, Both |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Force
Указывает, что командлет направляет командлет для отображения всех сведений об ошибке. Используется с параметром DisplayError или ShowError. По умолчанию при записи объекта ошибки в потоки ошибок или отображения отображаются только некоторые сведения об ошибке.
Также требуется при форматировании определенных типов .NET. Дополнительные сведения см. в разделе Примечания.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-GroupBy
Задает отсортированные выходные данные в отдельных таблицах на основе значения свойства. Например, можно использовать GroupBy для перечисления служб в отдельных таблицах на основе их состояния.
Введите выражение или свойство. Параметр GroupBy ожидает сортировки объектов.
Sort-Object
Используйте командлет перед использованием Format-Table
для группировки объектов.
Значение параметра GroupBy может быть новым вычисляемым свойством. Вычисляемое свойство может быть блоком скрипта или хэш-таблицей. Допустимые пары "ключ-значение":
- Имя (или метка) —
<string>
- Выражение —
<string>
или<script block>
- FormatString —
<string>
Дополнительные сведения см. в about_Calculated_Properties.
Тип: | Object |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-HideTableHeaders
Исключает из таблицы заголовки столбцов.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Указывает объекты для форматирования. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.
Тип: | PSObject |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | 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.
Тип: | Object[] |
Position: | 0 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-RepeatHeader
Повторяет отображение заголовка таблицы после каждого экрана. Повторяющийся заголовок полезен, если выходные данные передаются на пейджер, например less
или more
страницы с помощью средства чтения с экрана.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ShowError
Этот параметр отправляет ошибки через конвейер. Этот параметр можно использовать в качестве средства отладки при форматировании выражений в команде Format-Table
и необходимости устранять неполадки с выражениями.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | 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
командлет.
Параметры свойства и представления нельзя использовать в той же команде.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Wrap
Переносит текст, не помещающийся по ширине столбца, на следующую строку. По умолчанию текст, не уместившийся по ширине столбца, усекается.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Вы можете передать любой объект в этот командлет.
Выходные данные
Microsoft.PowerShell.Commands.Internal.Format
Этот командлет возвращает объекты формата, представляющие таблицу.
Примечания
PowerShell включает следующие псевдонимы для Format-Table
:
- Все платформы:
ft
PowerShell 7.2 представила новые функции для цвета выходных данных. Цвета можно управлять с помощью автоматической переменной $PSStyle
. Свойство $PSStyle.Formatting.TableHeader
определяет цвет, используемый для заголовка таблицы, отображаемой Format-Table
. Дополнительные сведения об этом параметре см. в about_ANSI_Terminals.
Если вы хотите использовать Format-Table
с параметром Property , необходимо включить параметр Force в любом из следующих условий:
Входные объекты обычно форматируются вне диапазона с помощью
ToString()
метода. Это относится к[string]
примитивным типам .NET, которые являются супермножеством встроенных числовых типов, таких как[int]
,[long]
и другие.Входные объекты не имеют открытых свойств.
Входные объекты — это экземпляры типов оболочки PowerShell, которые используются для выходных потоков, отличных от потока выходных данных Success. Это применяется только в том случае, если эти типы оболочки отправляются в выходной поток успешного выполнения, требующий их записи с помощью общих параметров, таких как ErrorVariable first или использование перенаправления,
*>&1
например.
Связанные ссылки
PowerShell