Format-Table
Форматирует выходные данные в виде таблицы.
Синтаксис
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>][-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>][<CommonParameters>]
Описание
Командлет Format-Table
форматирует выходные данные команды в виде таблицы с выбранными свойствами объекта в каждом столбце. Тип объекта определяет макет и свойства по умолчанию, отображаемые в каждом столбце, но для выбора нужных свойств можно использовать параметр Property .
Вы также можете использовать хэш-таблицу для добавления вычисляемых свойств в объект перед его отображением и для указания заголовков столбцов таблицы. Чтобы добавить вычисляемое свойство, используйте параметр Property или GroupBy .
Примеры
Пример 1. Форматирование узла PowerShell
Эта команда отображает сведения о ведущем приложении для PowerShell в таблице. По умолчанию они форматируются в виде списка.
Get-Host | Format-Table -AutoSize
Командлет Get-Host
получает объекты, представляющие узел. Оператор конвейера (|) передает объект командлету Format-Table
. Командлет Format-Table
форматирует объекты в таблице. Параметр AutoSize настраивает ширину столбцов, чтобы свести к минимуму усечение.
Пример 2. Форматирование процессов по BasePriority
Эта команда выводит процессы на компьютере по группам с одинаковым базовым приоритетом.
Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap
Командлет Get-Process получает объекты, представляющие каждый процесс на компьютере. Оператор конвейера (|) передает объект командлету Sort-Object, который сортирует объекты в порядке их базового приоритета.
Другой оператор конвейера передает результаты командлету Format-Table
. Параметр GroupBy упорядочивает данные о процессах по группам на основе значения их свойства BasePriority. Параметр Wrap гарантирует, что данные не будут усечены.
Пример 3. Форматирование процессов по дате начала
Get-Process | Sort-Object starttime | Format-Table -View starttime
Эта команда выводит сведения о процессах на компьютере по группам в соответствии с датой запуска процесса. Он использует командлет Get-Process для получения объектов, представляющих процессы на компьютере. Оператор конвейера (|) отправляет выходные данные Get-Process
Sort-Object
в командлет , который сортирует их на основе свойства StartTime. Другой оператор конвейера отправляет отсортированные результаты в Format-Table
.
Параметр View используется для выбора представления StartTime , определенного DotNetTypes.format.ps1xml
в файле для объектов System.Diagnostics.Process , например возвращаемых Get-Process
. Это представление преобразует время начала процесса в короткую дату, а затем группирует процессы по дате начала.
Файл DotNetTypes.format.ps1xml
также содержит представление Приоритет для процессов. Вы можете создавать собственные файлы format.ps1xml с настраиваемыми представлениями.
Пример 4. Форматирование служб
Get-Service | Format-Table -Property Name, DependentServices
Эта команда отображает все службы на компьютере в таблице с двумя столбцами: Name и DependentServices. Командлет Get-Service
получает все службы на компьютере. Оператор конвейера (|) отправляет результаты командлету Format-Table
, который форматирует выходные данные в таблице.
Параметр Property указывает свойства, которые отображаются в таблице в виде столбцов. Имя параметра Property является необязательным, поэтому его можно опустить, например Format-Table Name, DependentServices
.
Name и DependentServices — это лишь два свойства объектов службы. Чтобы просмотреть все свойства, введите Get-Service | Get-Member -MemberType Properties
.
Пример 5. Форматирование процесса и вычисление времени его выполнения
Эта команда показывает, как использовать вычисляемое свойство в таблице.
Get-Process Notepad | Format-Table ProcessName,
@{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
Она выводит таблицу с именами и общим временем выполнения всех процессов Блокнота на локальном компьютере. Общее время выполнения рассчитывается для каждого процесса путем вычитания времени начала из текущего времени.
Команда использует командлет для Get-Process
получения всех процессов с именем Блокнот на локальном компьютере.
Оператор конвейера (|) отправляет результаты в , который отображает таблицу Format-Table
с двумя столбцами: ProcessName, стандартное свойство процессов и TotalRunningTime, вычисляемое свойство.
Свойство TotalRunningTime задается хэш-таблицей с двумя ключами: Label и Expression. Имя свойства присваивается ключу Label . Вычисление назначается ключу Expression . Выражение получает свойство StartTime каждого объекта процесса и вычитает его из результата Get-Date
команды, которая получает текущие дату и время.
Пример 6. Форматирование процессов Блокнота
Эти команды аналогичны предыдущей команде, за исключением того, что они используют Get-WmiObject
командлет .
$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}
Первая команда использует Get-WmiObject
командлет для получения экземпляров класса WMI Win32_Process , описывающего все процессы на компьютере Server01 с именем Notepad.exe
.
Команда сохраняет сведения о процессе в переменной $Processes
.
Вторая команда использует оператор конвейера (|) для отправки сведений о процессе в $Processes
переменной Format-Table
командлету , который отображает ProcessName и новое вычисляемое свойство.
Команда присваивает ключу Label имя нового вычисляемого свойства "Total Running Time" (Общее время выполнения). Блок скрипта, назначенный ключу Expression , вычисляет продолжительность выполнения процесса путем вычитания даты создания процесса из текущей даты. Командлет Get-Date
получает текущую дату. Метод ConvertToDateTime преобразует свойство CreationDateобъекта Win32_Process из объекта WMI CIM_DATETIME в объект DateTime .NET, который можно сравнить с выходными данными Get-Date
. Затем преобразованная дата создания вычитается из текущей даты. Результатом является значение Total Running Time (Общее время выполнения).
Пример 7. Устранение ошибок формата
В следующих примерах показаны результаты добавления параметров DisplayError или ShowError с выражением.
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
Failed to evaluate expression " $_ / $null ".
+ CategoryInfo : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
+ FullyQualifiedErrorId : mshExpressionError
Параметры
-AutoSize
Указывает, что командлет корректирует размер и количество столбцов в зависимости от ширины данных. По умолчанию размер и количество столбцов определяются представлением.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayError
Указывает, что командлет отображает ошибки в командной строке. Этот параметр используется редко, но его можно использовать в качестве помощника по отладке при форматировании выражений Format-Table
в команде и, как представляется, выражения не работают.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Expand
Задает формат объекта коллекции, а также объектов в коллекции. Этот параметр служит для форматирования объектов, поддерживающих интерфейс ICollection (System.Collections). Значение по умолчанию — EnumOnly. Допустимые значения для этого параметра:
- EnumOnly — отображаются свойства объектов в коллекции.
- CoreOnly — отображаются свойства объекта коллекции.
- Both — отображаются свойства объекта коллекции и свойства объектов, содержащихся в коллекции.
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: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-GroupBy
Указывает отсортированные выходные данные в отдельных таблицах на основе значения свойства. Например, можно использовать GroupBy для перечисления служб в отдельных таблицах на основе их состояния.
Введите выражение или свойство вывода. Выходные данные необходимо отсортировать перед отправкой в Format-Table
.
Значение параметра GroupBy может быть новым вычисляемым свойством. Чтобы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые разделы следующие:
- Name (или Label) <строка>;
- Expression <строка> или <блок скрипта>;
- FormatString <строка>.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HideTableHeaders
Исключает из таблицы заголовки столбцов.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
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 и View в одной команде.
Значение параметра Property может быть новым вычисляемым свойством. Чтобы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые разделы следующие:
- Name (или Label) <строка>;
- Expression <строка> или <блок скрипта>;
- FormatString <строка>.
- Ширина <int32>
- Выравнивание (значение может быть "Left", "Center" или "Right")
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-ShowError
Отправляет ошибки по конвейеру. Этот параметр используется редко, но его можно использовать в качестве средства отладки при форматировании выражений Format-Table
в команде, а выражения не работают.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
Указывает имя альтернативного формата таблицы или представления. Нельзя использовать параметры 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: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Можно передать по конвейеру любой объект в Format-Table
.
Выходные данные
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
возвращает объекты форматирования, представляющие таблицу.
Примечания
Параметр GroupBy предполагает, что объекты сортируются. Sort-Object
Используйте командлет перед использованием Format-Table
для группировки объектов.
Параметр View позволяет указать альтернативный формат для таблицы. Вы можете использовать представления, определенные в файлах *.format.PS1XML
в каталоге PowerShell, или создать собственные представления в новых файлах PS1XML, а затем с помощью командлета Update-FormatData
включить их в PowerShell. Альтернативные представления для параметра View должны использовать табличный формат, в противном случае команда завершается ошибкой.
Если альтернативным представлением является список, используйте Format-List
командлет . Если альтернативное представление не является ни списком, ни таблицей, используйте Format-Custom
командлет .