Format Table - PowerShell


Overview

Format-Table formats a list of objects or custom objects as a table. It presents the data in a tabular format, with column headers representing the properties of the objects. This command is useful for organizing and displaying data in a readable and structured way.

Syntax

Format-Table [-AutoSize] [-Wrap] [-Column <String>] [-First <Int32>] [-Header <String>] [-HideTableHeaders] [-Last <Int32>] [-OutFile <String>] [-OutVariable <String>] [-GroupBy <String>] [-Width <Int32>] [-AutoSize] [-Wrap] [-Property <String>] [-Where <String>] [-Select <String>]

Options/Flags

  • -AutoSize: Automatically adjusts the width of the columns to fit the data.
  • -Wrap: Wraps the text within the columns to prevent truncation.
  • -Column: Specifies the properties to be displayed as columns.
  • -First: Limits the number of rows displayed to the specified number from the beginning.
  • -Header: Sets the header text for the table.
  • -HideTableHeaders: Hides the table headers.
  • -Last: Limits the number of rows displayed to the specified number from the end.
  • -OutFile: Saves the formatted table as a CSV file in the specified location.
  • -OutVariable: Stores the formatted table in the specified variable.
  • -GroupBy: Groups the objects by the specified property and displays the results as a nested table.
  • -Width: Sets the width of the table in characters.
  • -Property: Same as -Column.
  • -Where: Filters the objects based on the specified condition.
  • -Select: Selects only the specified properties to be displayed.

Examples

Simple Formatting:

PS> Get-Process | Format-Table -AutoSize

Custom Headers and Filtering:

PS> Get-Service | Format-Table -Header ServiceName, Status -Where {$_.Status -like "Running"}

Grouping and Wrapping:

PS> Get-EventLog -LogName System | Format-Table -GroupBy Source -AutoSize -Wrap

Common Issues

  • Truncated Text: Enable text wrapping (-Wrap) to display long text in full.
  • Unformatted Output: Ensure that the objects to be formatted have valid properties.

Integration

Format-Table can be combined with other commands for advanced tasks:

Piping to CSV:

PS> Get-ChildItem | Format-Table -AutoSize | Out-File file.csv

Conditional Formatting:

PS> Get-EventLog -LogName System | Format-Table -GroupBy Source -AutoSize | Where-Object {$_.Source -eq "Service Control Manager"}
  • Get-Member: Gets the members (properties and methods) of objects.
  • Export-Csv: Exports a list of objects as a CSV file.
  • Measure-Object: Measures properties of objects and displays the results in a table.