В традиционных оболочках команды и утилиты сами форматируют выводимые данные. Некоторые команды (например, dir в интерпретаторе Cmd.exe) позволяют настраивать формат вывода с помощью специальных параметров.
В оболочке PowerShell вывод форматируют только четыре специальных командлета Format (табл. 4). Это упрощает изучение, так как не нужно запоминать средства и параметры форматирования для других команд (остальные командлеты вывод не форматируют).
Таблица 4. Командлеты PowerShell для форматирования вывода
Командлет | Описание |
Format-Table | Форматирует вывод команды в виде таблицы, столбцы которой содержат свойства объекта (также могут быть добавлены вычисляемые столбцы). Поддерживается возможность группировки выводимых данных |
Format-List | Вывод форматируется как список свойств, в котором каждое свойство отображается на новой строке. Поддерживается возможность группировки выводимых данных |
Format-Custom | Для форматирования вывода используется пользовательское представление (view) |
Format-Wide | Форматирует объекты в виде широкой таблицы, в которой отображается только одно свойство каждого объекта |
Как уже отмечалось, если ни один из командлетов Format явно не указан, то используется модуль форматирования по умолчанию, который определяется по типу отображаемых данных. Например, при выполнении командлета Get-Service данные по умолчанию выводятся как таблица с тремя столбцами (Status, Name и DisplayName):
PS C:\> Get-Service Status Name DisplayName------ ---- -----------Stopped Alerter ОповещательRunning ALG Служба шлюза уровня приложенияStopped AppMgmt Управление приложениямиStopped aspnet_state ASP.NET State ServiceRunning Ati HotKey Poller Ati HotKey PollerRunning AudioSrv Windows AudioRunning BITS Фоновая интеллектуальная служба пер...Running Browser Обозреватель компьютеровStopped cisvc Служба индексированияStopped ClipSrv Сервер папки обменаStopped clr_optimizatio....NET Runtime Optimization Service v...Stopped COMSysApp Системное приложение COM+Running CryptSvc Службы криптографииRunning DcomLaunch Запуск серверных процессов DCOMRunning Dhcp DHCP-клиент...Для изменения формата выводимых данных нужно направить их по конвейеру соответствующему командлету Format. Например, следующая команда выведет список служб с помощью командлета Format-List:
При использовании формата списка выводится больше сведений о каждой службе, чем в формате таблицы (вместо трех столбцов данных о каждой службе в формате списка выводятся девять строк данных). Однако это вовсе не означает, что командлет Format-List извлекает дополнительные сведения о службах. Эти данные содержатся в объектах, возвращаемых командлетом Get-Service, однако командлет Format-Table, используемый по умолчанию, отбрасывает их, потому что не может вывести на экран более трех столбцов.
При форматировании вывода с помощью командлетов Format-List и Format-Table можно указывать имена свойства объекта, которые должны быть отображены (напомним, что просмотреть список свойств, имеющихся у объекта, позволяет рассмотренный ранее командлет Get-Member). Например:
PS C:\> Get-Service | Format-List Name, Status, CanStop Name: AlerterStatus: StoppedCanStop: False Name: ALGStatus: RunningCanStop: True Name: AppMgmtStatus: StoppedCanStop: False...Вывести все имеющиеся у объектов свойства можно с помощью параметра *, например:
PS C:\> Get-Service | Format-table *