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


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

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

PSObject

Можно передать по конвейеру любой объект в 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 командлет .