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-Object
och 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-Table
anvä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-Table
anvä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
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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String |
Godkända värden: | CoreOnly, EnumOnly, Both |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 .
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | Object |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-HideTableHeaders
Utelämnar kolumnrubrikerna från tabellen.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | PSObject |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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 än0
- Justering – värdet kan vara
Left
,Center
ellerRight
Mer information finns i about_Calculated_Properties.
Typ: | Object[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Wrap
Visar text som överskrider kolumnbredden på nästa rad. Som standard trunkeras text som överskrider kolumnbredden.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
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:
Indataobjekten formateras normalt out-of-band med metoden
ToString()
. Detta gäller för[string]
och .NET primitiva typer, som är en supermängd av de inbyggda numeriska typerna, till exempel[int]
,[long]
och andra.Indataobjekten har inga offentliga egenskaper.
Indataobjekten är instanser av de omslutningstyper som PowerShell använder för andra utdataströmmar än utdataströmmen Lyckades. Detta gäller endast när dessa omslutningstyper skickas till utdataströmmen Lyckades som antingen kräver att de har hämtats via vanliga parametrar som ErrorVariable först eller med hjälp av en omdirigering, till exempel
*>&1
.