Format-Table

Formaterar utdata som en tabell.

Syntax

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

Description

Cmdleten Format-Table formaterar utdata från ett kommando som en tabell med de markerade egenskaperna för objektet i varje kolumn. Objekttypen avgör standardlayouten och egenskaperna som visas i varje kolumn. Du kan använda egenskapsparametern för att välja de egenskaper som du vill visa.

PowerShell använder standardformaterare för att definiera hur objekttyper ska visas. Du kan använda .ps1xml filer för att skapa anpassade vyer som visar en utdatatabell med angivna egenskaper. När en anpassad vy har skapats använder du parametern Visa för att visa tabellen med din anpassade vy. Mer information om vyer finns i about_Format.ps1xml.

Du kan använda en hash-tabell för att lägga till beräknade egenskaper i ett objekt innan du visar den och ange kolumnrubrikerna i tabellen. Om du vill lägga till en beräknad egenskap använder du parametern Egenskap eller GroupBy . Mer information om hash-tabeller finns i about_Hash_Tables.

Exempel

Exempel 1: Formatera PowerShell-värd

I det här exemplet visas information om värdprogrammet för PowerShell i en tabell.

Get-Host | Format-Table -AutoSize

Cmdleten Get-Host hämtar System.Management.Automation.Internal.Host.InternalHost-objekt som representerar värden. Objekten skickas ned i pipelinen till Format-Table och visas i en tabell. Parametern AutoSize justerar kolumnbredderna för att minimera trunkeringen.

Exempel 2: Formatera processer efter BasePriority

I det här exemplet visas processer i grupper som har samma BasePriority-egenskap .

Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap

Cmdleten Get-Process hämtar objekt som representerar varje process på datorn och skickar dem nedåt i pipelinen till Sort-Object. Objekten sorteras i ordning efter egenskapen BasePriority .

De sorterade objekten skickas ned i pipelinen till Format-Table. Parametern GroupBy ordnar processdata i grupper baserat på deras BasePriority-egenskaps värde. Parametern Wrap ser till att data inte trunkeras.

Exempel 3: Formatera processer efter startdatum

I det här exemplet visas information om de processer som körs på datorn. Objekten sorteras och Format-Table använder en vy för att gruppera objekten efter deras startdatum.

Get-Process | Sort-Object StartTime | Format-Table -View StartTime

Get-Process hämtar objekten System.Diagnostics.Process som representerar de processer som körs på datorn. Objekten skickas ned i pipelinen till Sort-Objectoch sorteras baserat på egenskapen StartTime .

De sorterade objekten skickas ned i pipelinen till Format-Table. Parametern Visa anger den StartTime-vy som definieras i PowerShell-filen DotNetTypes.format.ps1xml för System.Diagnostics.Process-objekt. StartTime-vyn konverterar varje processers starttid till ett kort datum och grupperar sedan processerna efter startdatumet.

Filen DotNetTypes.format.ps1xml innehåller en prioritetsvy för processer. Du kan skapa egna format.ps1xml filer med anpassade vyer.

Exempel 4: Använd en anpassad vy för tabellutdata

I det här exemplet visar en anpassad vy innehållet i en katalog. Den anpassade vyn lägger till kolumnen CreationTime i tabellutdata för System.IO.DirectoryInfo - och System.IO.FileInfo-objekt som skapats av Get-ChildItem.

Den anpassade vyn i det här exemplet skapades från vyn som definierats i PowerShell-källkoden. Mer information om vyer och koden som används för att skapa det här exemplets vy finns i about_Format.ps1xml.

Get-ChildItem  -Path C:\Test | Format-Table -View mygciview

Directory: C:\Test

Mode                LastWriteTime              CreationTime         Length Name
----                -------------              ------------         ------ ----
d-----        11/4/2019     15:54       9/24/2019     15:54                Archives
d-----        8/27/2019     14:22       8/27/2019     14:22                Drawings
d-----       10/23/2019     09:38       2/25/2019     09:38                Files
-a----        11/7/2019     11:07       11/7/2019     11:07          11345 Alias.txt
-a----        2/27/2019     15:15       2/27/2019     15:15            258 alias_out.txt
-a----        2/27/2019     15:16       2/27/2019     15:16            258 alias_out2.txt

Get-ChildItem hämtar innehållet i den aktuella katalogen, C:\Test. Objekten System.IO.DirectoryInfo och System.IO.FileInfo skickas nedåt i pipelinen. Format-Tableanvänder parametern Visa för att ange den anpassade vy mygciview som innehåller kolumnen CreationTime.

Format-Table Standardutdata för Get-ChildItem innehåller inte kolumnen CreationTime.

Exempel 5: Använd egenskaper för tabellutdata

I det här exemplet används parametern Egenskap för att visa alla datorns tjänster i en tabell med två kolumner som visar egenskaperna Name och DependentServices.

Get-Service | Format-Table -Property Name, DependentServices

Get-Service hämtar alla tjänster på datorn och skickar objekten System.ServiceProcess.ServiceController nedåt i pipelinen. Format-Tableanvänder egenskapsparametern för att ange att egenskaperna Name och DependentServices visas i tabellen.

Namn och Beroendetjänster är två av objekttypens egenskaper. Så här visar du alla egenskaper: Get-Service | Get-Member -MemberType Properties.

Exempel 6: Formatera en process och beräkna dess körningstid

I det här exemplet visas en tabell med processnamnet och den totala körningstiden för den lokala datorns anteckningar . Den totala körningstiden beräknas genom att subtrahera starttiden för varje process från den aktuella tiden.

Get-Process notepad |
  Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

ProcessName TotalRunningTime
----------- ----------------
notepad     03:20:00.2751767
notepad     00:00:16.7710520

Get-Process hämtar alla den lokala datorns anteckningar och skickar objekten nedåt i pipelinen. Format-Table visar en tabell med två kolumner: ProcessName, en Get-Process egenskap och TotalRunningTime, en beräknad egenskap.

Egenskapen TotalRunningTime anges av en hash-tabell med två nycklar, Etikett och uttryck. Etikettnyckeln anger egenskapsnamnet. Uttrycksnyckeln anger beräkningen. Uttrycket hämtar egenskapen StartTime för varje processobjekt och subtraherar det från resultatet av ett Get-Date kommando, som hämtar aktuellt datum och tid.

Exempel 7: Formatera Anteckningar processer

Det här exemplet används Get-CimInstance för att hämta körningstiden för alla anteckningar på den lokala datorn. Du kan använda Get-CimInstance med parametern ComputerName för att hämta information från fjärrdatorer.

$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
    Label = "Total Running Time"
    Expression={(Get-Date) - $_.CreationDate}
}

ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922

Get-CimInstance hämtar instanser av klassen WMI Win32_Process som beskriver alla processer på den lokala datorn med namnet notepad.exe. Processobjekten lagras i variabeln $Processes .

Processobjekten i variabeln $Processes skickas ned i pipelinen till Format-Table, som visar egenskapen ProcessName och en ny beräknad egenskap, Total körningstid.

Kommandot tilldelar namnet på den nya beräknade egenskapen, Total körningstid, till etikettnyckeln. Skriptblocket för uttrycksnyckeln beräknar hur länge processen har körts genom att subtrahera processernas skapandedatum från det aktuella datumet. Cmdleten Get-Date hämtar det aktuella datumet. Skapandedatumet subtraheras från det aktuella datumet. Resultatet är värdet för Total körningstid.

Exempel 8: Felsöka formatfel

I följande exempel visas resultatet av att lägga till parametrarna DisplayError eller ShowError med ett uttryck.

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday

InvalidArgument: Failed to evaluate expression " $_ / $null ".

Parametrar

-AutoSize

Anger att cmdleten justerar kolumnstorleken och antalet kolumner baserat på databredden. Som standard bestäms kolumnstorleken och talet av vyn.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayError

Anger att cmdleten visar fel på kommandoraden. Den här parametern kan användas som felsökningshjälp när du formaterar uttryck i ett Format-Table kommando och behöver felsöka uttrycken.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expand

Anger formatet för samlingsobjektet och objekten i samlingen. Den här parametern är utformad för att formatera objekt som stöder gränssnittet ICollection (System.Collections). Standardvärdet är EnumOnly. Godkända värden för den här parametern är följande:

  • EnumOnly: Visar egenskaperna för objekten i samlingen.
  • CoreOnly: Visar egenskaperna för samlingsobjektet.
  • Båda: Visar egenskaperna för samlingsobjektet och egenskaperna för objekt i samlingen.
Type:String
Accepted values:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Anger att cmdleten dirigerar cmdleten till att visa all felinformation. Använd med parametern DisplayError eller ShowError . När ett felobjekt skrivs till fel- eller visningsströmmar visas som standard endast viss felinformation.

Krävs även vid formatering av vissa .NET-typer. Mer information finns i avsnittet Anteckningar .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

Anger sorterade utdata i separata tabeller baserat på ett egenskapsvärde. Du kan till exempel använda GroupBy för att visa tjänster i separata tabeller baserat på deras status.

Ange ett uttryck eller en egenskap. Parametern GroupBy förväntar sig att objekten sorteras. Använd cmdleten Sort-Object innan du använder Format-Table för att gruppera objekten.

Värdet för parametern GroupBy kan vara en ny beräknad egenskap. Den beräknade egenskapen kan vara ett skriptblock eller en hash-tabell. Giltiga nyckel/värde-par är:

  • Namn (eller etikett) - <string>
  • Uttryck – <string> eller <script block>
  • FormatString - <string>

Mer information finns i about_Calculated_Properties.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideTableHeaders

Utelämnar kolumnrubrikerna från tabellen.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Anger vilka objekt som ska formateras. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Property

Anger de objektegenskaper som visas i visningen och i vilken ordning de visas. Skriv ett eller flera egenskapsnamn, avgränsade med kommatecken eller använd en hash-tabell för att visa en beräknad egenskap. Jokertecken tillåts.

Om du utelämnar den här parametern beror egenskaperna som visas i visningen på det första objektets egenskaper. Om det första objektet till exempel har PropertyA och PropertyB men efterföljande objekt har PropertyA, PropertyB och PropertyC, visas endast PropertyA- och PropertyB-rubrikerna.

Egenskapsparametern är valfri. Du kan inte använda parametrarna Egenskap och Visa i samma kommando.

Värdet för egenskapsparametern kan vara en ny beräknad egenskap. Den beräknade egenskapen kan vara ett skriptblock eller en hash-tabell. Giltiga nyckel/värde-par är:

  • Namn (eller etikett) <string>
  • Uttryck – <string> eller <script block>
  • FormatString - <string>
  • Bredd - <int32> - måste vara större än 0
  • Justering – värdet kan vara Left, Centereller Right

Mer information finns i about_Calculated_Properties.

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-RepeatHeader

Upprepar att huvudet i en tabell visas efter varje helskärm. Den upprepade rubriken är användbar när utdata skickas till en personsökare som less eller more växling med en skärmläsare.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ShowError

Den här parametern skickar fel via pipelinen. Den här parametern kan användas som felsökningshjälp när du formaterar uttryck i ett Format-Table kommando och behöver felsöka uttrycken.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

Från och med PowerShell 6 definieras standardvyerna i PowerShell-källkoden C# . Filerna *.format.ps1xml från PowerShell 5.1 och tidigare versioner finns inte i PowerShell 6 eller senare versioner.

Med parametern Visa kan du ange ett alternativt format eller en anpassad vy för tabellen. Du kan använda standardvyerna i PowerShell eller skapa anpassade vyer. Mer information om hur du skapar en anpassad vy finns i about_Format.ps1xml.

De alternativa och anpassade vyerna för parametern View måste använda tabellformatet, annars Format-Table misslyckas. Om den alternativa vyn är en lista använder du cmdleten Format-List . Om den alternativa vyn inte är en lista eller tabell använder du cmdleten Format-Custom .

Du kan inte använda parametrarna Egenskap och Visa i samma kommando.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wrap

Visar text som överskrider kolumnbredden på nästa rad. Som standard trunkeras text som överskrider kolumnbredden.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

PSObject

Du kan skicka valfritt objekt till den här cmdleten.

Utdata

Microsoft.PowerShell.Commands.Internal.Format

Den här cmdleten returnerar formatobjekt som representerar tabellen.

Kommentarer

PowerShell innehåller följande alias för Format-Table:

  • Alla plattformar:
    • ft

PowerShell 7.2 introducerade nya funktioner för att färglägga utdata. Färgerna kan hanteras med hjälp av den $PSStyle automatiska variabeln. Egenskapen $PSStyle.Formatting.TableHeader definierar den färg som används för rubriken i tabellen som visas av Format-Table. Mer information om den här inställningen finns i about_ANSI_Terminals.

Om du vill använda Format-Table med parametern Egenskap måste du inkludera parametern Force under något av följande villkor: