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


Format-Table

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

Синтаксис

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

Описание

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

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

Параметры

-AutoSize

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-DisplayError

Выводит сообщения об ошибках в командной строке.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Expand <string>

Форматирует объект коллекции, а также объекты, содержащиеся в коллекции. Этот параметр служит для форматирования объектов, поддерживающих интерфейс ICollection (System.Collections). По умолчанию используется значение "EnumOnly".

Допустимые значения:

-- EnumOnly: отображаются свойства объектов, содержащихся в коллекции;

-- CoreOnly: отображаются свойства объекта коллекции;

-- Both: отображаются свойства объекта коллекции и свойства объектов, содержащихся в коллекции.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Force

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-GroupBy <Object>

Разбивает отсортированные результаты по нескольким таблицам в зависимости от значения свойства. Например, с помощью параметра GroupBy службы можно поместить в отдельные таблицы в зависимости от их состояния.

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

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

-- Name (или Label) <строка>

-- Expression <строка> или <блок скрипта>

-- FormatString <строка>

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-HideTableHeaders

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-InputObject <psobject>

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

-Property <Object[]>

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

Если этот параметр не указан, включаемые в вывод свойства зависят от отображаемого объекта. Имя параметра ("Property") указывать необязательно. Использовать параметры Property и View в одной команде нельзя.

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

-- Name (или Label) <строка>

-- Expression <строка> или <блок скрипта>

-- FormatString <строка>

-- Width <int32>

-- Alignment (значение может быть "Left", "Center" или "Right")

Обязательно?

false

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ShowError

Отправляет ошибки по конвейеру.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-View <string>

Задает имя альтернативного табличного формата ("представления"). Использовать параметры Property и View в одной команде нельзя.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Wrap

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

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

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

System.Management.Automation.PSObject

Любой объект можно передать командлету Format-Table по конвейеру.

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

Microsoft.PowerShell.Commands.Internal.Format

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

Примечания

Командлет Format-Table также можно вызывать с помощью встроенного псевдонима "FT". Дополнительные сведения см. в разделе About_Aliases.

При указании параметра GroupBy предполагается, что объекты отсортированы. Перед группировкой объектов с помощью командлета Format-Custom выполните командлет Sort-Object, чтобы отсортировать их.

Параметр View позволяет задать альтернативный формат таблицы. Можно использовать представления, определенные в файлах *.format.PS1XML в каталоге Windows PowerShell, или создать собственные представления в новых файлах PS1XML и включить их в Windows PowerShell с помощью командлета Update-FormatData.

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

Пример 1

C:\PS>get-pssnapin | format-table -auto

Описание
-----------
Эта команда форматирует сведения об оснастках оболочки Windows PowerShell в виде таблицы. По умолчанию эти сведения форматируются как список. Командлет Get-PSSnapin возвращает объекты, представляющие оснастки. Оператор конвейера (|) передает объект команде Format-Table. Команда Format-Table форматирует объекты в таблице. Параметр Autosize настраивает ширину столбцов так, чтобы свести к минимуму обрезку значений.





Пример 2

C:\PS>get-process | sort-object -property basepriority | format-table -groupby basepriority -wrap

Описание
-----------
Эта команда отображает процессы на компьютере, группируя их по базовому приоритету. 

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


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





Пример 3

C:\PS>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. Это представление преобразует время запуска (StartTime) процессов в краткий формат даты, а затем группирует процессы по дате запуска.

Файл форматирования DotNetTypes.format.ps1xml содержит также представление процессов Priority. Кроме того, можно создавать собственные файлы format.ps1xml с пользовательскими представлениями.





Пример 4

C:\PS>get-service | format-table -property Name, DependentServices

Описание
-----------
Эта команда отображает все службы на компьютере в таблице с двумя столбцами — Name и DependentServices. Для получения всех служб на компьютере в этой команде используется командлет Get-Service. С помощью оператора конвейера (|) результаты передаются командлету Format-Table, который форматирует выходные данные в виде таблицы. Параметр Property определяет свойства, представляемые в таблице в виде столбцов. Имя параметра Property является необязательным, поэтому его можно не указывать ("format-table name, dependentservices").

Property и DependentServices — это только два свойства объектов служб. Чтобы просмотреть все свойства, введите "get-service | get-member".





Пример 5

C:\PS>get-process notepad | format-table ProcessName, `
@{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}

Описание
-----------
Эта команда демонстрирует использование вычисляемых свойств в таблице. Она отображает таблицу с именем процесса и общим временем выполнения всех процессов "Notepad" на локальном компьютере. Для определения общего времени выполнения процессов время запуска каждого процесса вычитается из текущего времени.

Для получения всех процессов с именем "Notepad" на локальном компьютере в этой команде используется командлет Get-Process. Оператор конвейера (|) передает результаты командлету Format-Table, который отображает таблицу с двумя столбцами: ProcessName (стандартное свойство процессов) и TotalRunningTime (вычисляемое свойство).

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





Пример 6

C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filter "name='notepad.exe'"  

C:\PS> $processes | format-table ProcessName, @{ Label = "Total  Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}

Описание
-----------
Эти команды аналогичны предыдущей команде, только в них используются командлет Get-WmiObject и класс Win32_Process для отображения сведений о процессах "Notepad" на удаленном компьютере.

В первой команде командлет Get-WmiObject получает экземпляры класса Win32_Process инструментария управления Windows (WMI), описывающего все процессы Notepad.exe на компьютере Server01. Сведения о процессах сохраняются данной командой в переменной $processes. 


Во второй команде оператор конвейера (|) передает сведения о процессах, сохраненные в переменной $processes, командлету Format-Table, который отображает имя каждого процесса и значение нового вычисляемого свойства. 

Имя нового вычисляемого свойства (Total Running Time) назначается данной командой ключу Label. Блок скрипта, назначенный ключу "Expression", вычисляет время выполнения процесса, вычитая дату создания процесса из текущей даты. Командлет Get-Date получает текущую дату. Метод ConvertToDateTime преобразует свойство CreationDate объекта Win32_Process из WMI-объекта CIM_DATETIME в объект Microsoft .NET Framework DateTime, который можно сравнить с выходными данными командлета Get-Date. После этого преобразованная дата создания процесса вычитается из текущей даты. Результат — значение "Total Running Time".

Открывающая кавычка (`) является знаком продолжения строки.





См. также

Концепции

Format-List
Format-Wide
Format-Custom