Как поменять заголовок столбца в выводе PowerShell. Как поменять ширину и выравнивание в таблицах


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

С помощью опции -Property можно менять набор выводимых данных (какие столбцы будут показаны), так и определять заголовки столбцов и использовать вычисления в выводимых данных.

Подробности смотрите в статьях:

Рассмотрим подробнее справку по опции -Property, а затем перейдём к примерам.

Параметр -Property командлета Format-Table

Параметр -Propert задаёт выводимые свойства объекта и порядок их появления. Введите одно или несколько имён свойств, разделённых запятыми, или используйте хеш-таблицу для отображения вычисляемого свойства. Подстановочные знаки разрешены.

Если вы опустите этот параметр, отображаемые свойства будут зависеть от свойств первого объекта. Например, если у первого объекта есть PropertyA и PropertyB, а у последующих объектов есть PropertyA, PropertyB и PropertyC, то будут отображаться только заголовки PropertyA и PropertyB.

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

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

  • Name (или Label) = `<строка>`
  • Expression = `<строка>` или `<скриптовый блок>`
  • FormatString = `<строка>`
  • Width = `<int32>`
  • Alignment = значением может быть Left, Center или Right

Примеры использования параметра -Property командлета Format-Table

Как поменять заголовок столбца в выводе PowerShell

Рассмотрим использование параметра -Property командлета Format-Table для изменения заголовка столбца.

К примеру, командлет Get-ChildItem без указания опций выведет папки и файлы в текущей рабочей директории:


Get-ChildItem

Можно увидеть, что показано четыре столбца:

  • Mode
  • LastWriteTime
  • Length
  • Name

Команда, аналогичная предыдущей, но с явным указанием выводимых данных:

Get-ChildItem | Format-Table -Property Mode, LastWriteTime, Length, Name

Необязательно указывать опцию -Property, следующая и предыдущая команды идентична:

Get-ChildItem | Format-Table Mode, LastWriteTime, Length, Name

В последствии в командах не будет указываться -Property.

В шапке таблицы используются английские обозначения, соответствующие названию свойств.

Следующая команда заменить заголовок последнего столбца, вместо Name там будет «Имя»:

Get-ChildItem | Format-Table Mode, LastWriteTime, Length, @{Label="Имя"; Expression={$_.Name}}


В этой команде вместо Name (выводимый параметр) использовано выражение @{Label="Имя"; Expression={$_.Name}}. В этом выражении значение Label (в данном случае "Имя") является заголовком выводимого столбца. А значение Expression (в данном случае $_.Name) это выводимые данные. Обратите внимание, что в качестве выводимых данных используется конструкция $_.Name, которая получилась объединением последовательности символов «$_.» и имени свойства, в данном случае «Name».

В следующей команде все имена столбцов заменены заголовками на русском языке:

Get-ChildItem | Format-Table @{Label="Режим"; Expression={$_.Mode}}, @{Label="Последняя запись в"; Expression={$_.LastWriteTime}}, @{Label="Размер"; Expression={$_.Length}}, @{Label="Имя"; Expression={$_.Name}}

При желании вы можете поменять столбцы местами или вовсе исключить ненужные данные:

Get-ChildItem | Format-Table @{Label="Режим"; Expression={$_.Mode}}, @{Label="Имя"; Expression={$_.Name}}, @{Label="Последняя запись в"; Expression={$_.LastWriteTime}}

Также вы можете выбрать другие данные для вывода и поменять заголовки для них:

Get-ChildItem | Get-Member -MemberType Property
Get-ChildItem | Format-Table @{Label="Режим"; Expression={$_.Mode}}, @{Label="Последняя запись в"; Expression={$_.LastWriteTime}}, @{Label="Размер"; Expression={$_.Length}}, @{Label="Полное имя"; Expression={$_.FullName}}

Подробности смотрите в статье: Как в PowerShell менять набор выводимых по умолчанию данных

Как поменять ширину и выравнивание в таблицах

Кроме уже рассмотренных ключей опции -Property:

  • Name (или Label) = `<строка>`
  • Expression = `<строка>` или `<скриптовый блок>`

для изменения внешнего вида таблицы также можно использовать следующие:

  • Width = ЧИСЛО
  • Alignment = значением может быть "Left", "Center" или "Right"

Как можно понять из названия ключей, Width устанавливает ширину столбцов, а Alignment отвечает за выравнивание выводимых данных в столбце.

В следующем выражении показано использование Width:

Get-ChildItem | Format-Table @{Label="Режим"; Expression={$_.Mode}; Width=8}, @{Label="Последняя запись в"; Expression={$_.LastWriteTime}; Width=20}, @{Label="Размер"; Expression={$_.Length}; Width=7}, @{Label="Имя"; Expression={$_.Name}; Width=25}

Обратите внимание на структуру:

@{Label="Режим"; Expression={$_.Mode}; Width=8}

В следующей команде показано одновременное использование Width и Alignment (а также уже рассмотренных выше Label и Expression):

Get-ChildItem | Format-Table @{Label="Режим"; Expression={$_.Mode}; Width=8}, @{Label="Последняя запись в"; Expression={$_.LastWriteTime}; Width=20}, @{Label="Размер"; Expression={$_.Length}; Width=7; Alignment="Center"}, @{Label="Имя"; Expression={$_.Name}; Width=25; Alignment="Right"}

Ещё один вариант форматирвоания:


Get-ChildItem | Format-Table @{Label="Режим"; Expression={$_.Mode}; Width=8}, @{Label="Последняя запись в"; Expression={$_.LastWriteTime}; Width=20}, @{Label="Размер"; Expression={$_.Length}; Width=7; Alignment="Left"}, @{Label="Имя"; Expression={$_.Name}}


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *