Delen via


Format-Table

Hiermee wordt de uitvoer opgemaakt als een tabel.

Syntaxis

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

Description

De Format-Table cmdlet formatteert de uitvoer van een opdracht als een tabel met de geselecteerde eigenschappen van het object in elke kolom. Het objecttype bepaalt de standaardindeling en eigenschappen die in elke kolom worden weergegeven. U kunt de parameter eigenschap gebruiken om de eigenschappen te selecteren die u wilt weergeven.

PowerShell maakt gebruik van standaardopmaakfuncties om te definiëren hoe objecttypen worden weergegeven. U kunt .ps1xml bestanden gebruiken om aangepaste weergaven te maken die een uitvoertabel met opgegeven eigenschappen weergeven. Nadat een aangepaste weergave is gemaakt, gebruikt u de parameter Weergave om de tabel met uw aangepaste weergave weer te geven. Zie about_Format.ps1xmlvoor meer informatie over weergaven.

U kunt een hash-tabel gebruiken om berekende eigenschappen toe te voegen aan een object voordat u deze weergeeft en om de kolomkoppen in de tabel op te geven. Als u een berekende eigenschap wilt toevoegen, gebruikt u de parameter Eigenschap of GroupBy. Zie about_Hash_Tablesvoor meer informatie over hashtabellen.

Voorbeelden

Voorbeeld 1: PowerShell-host opmaken

In dit voorbeeld wordt informatie weergegeven over het hostprogramma voor PowerShell in een tabel.

Get-Host | Format-Table -AutoSize

De Get-Host-cmdlet haalt System.Management.Automation.Internal.Host.InternalHost objecten op die de host vertegenwoordigen. De objecten worden naar de pijplijn verzonden naar Format-Table en weergegeven in een tabel. Met de parameter AutoSize worden de kolombreedten aangepast om de afkapping te minimaliseren.

Voorbeeld 2: Processen opmaken op BasisPriority

In dit voorbeeld worden processen weergegeven in groepen met dezelfde eigenschap BasePriority.

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

De Get-Process cmdlet haalt objecten op die elk proces op de computer vertegenwoordigen en verzendt ze naar Sort-Object. De objecten worden gesorteerd in de volgorde van hun Eigenschap BasePriority.

De gesorteerde objecten worden in de pijplijn naar Format-Tableverzonden. De parameter GroupBy rangschikt de procesgegevens in groepen op basis van de waarde van BasePriority eigenschap. De parameter Wrap zorgt ervoor dat gegevens niet worden afgekapt.

Voorbeeld 3: Processen opmaken op begindatum

In dit voorbeeld wordt informatie weergegeven over de processen die op de computer worden uitgevoerd. De objecten worden gesorteerd en Format-Table gebruikt een weergave om de objecten te groeperen op de begindatum.

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

Get-Process haalt het System.Diagnostics.Process objecten op die de processen vertegenwoordigen die op de computer worden uitgevoerd. De objecten worden naar Sort-Objectverzonden en worden gesorteerd op basis van de eigenschap StartTime.

De gesorteerde objecten worden in de pijplijn naar Format-Tableverzonden. De parameter View geeft de StartTime-weergave op die is gedefinieerd in het PowerShell-DotNetTypes.format.ps1xml-bestand voor System.Diagnostics.Process--objecten. De weergave StartTime converteert elke starttijd van processen naar een korte datum en groepeert de processen vervolgens op de begindatum.

Het bestand DotNetTypes.format.ps1xml bevat een Priority-weergave voor processen. U kunt uw eigen format.ps1xml-bestanden maken met aangepaste weergaven.

Voorbeeld 4: Een aangepaste weergave gebruiken voor tabeluitvoer

In dit voorbeeld wordt in een aangepaste weergave de inhoud van een map weergegeven. De aangepaste weergave voegt de kolom CreationTime toe aan de tabeluitvoer voor System.IO.DirectoryInfo en System.IO.FileInfo objecten die zijn gemaakt door Get-ChildItem.

De aangepaste weergave in dit voorbeeld is gemaakt op basis van de weergave die is gedefinieerd in powerShell-broncode. Zie about_Format.ps1xmlvoor meer informatie over weergaven en de code die wordt gebruikt om de weergave van dit voorbeeld te maken.

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 de inhoud van de huidige map ophaalt, C:\Test. De System.IO.DirectoryInfo en System.IO.FileInfo objecten worden naar beneden verzonden. Format-Table gebruikt de parameter View om de aangepaste weergave op te geven mygciview- die de kolom CreationTime bevat.

De standaarduitvoer Format-Table voor Get-ChildItem bevat niet de kolom CreationTime.

Voorbeeld 5: Eigenschappen gebruiken voor tabeluitvoer

In dit voorbeeld wordt de parameter eigenschap gebruikt om alle services van de computer weer te geven in een tabel met twee kolommen waarin de eigenschappen Naam en DependentServicesworden weergegeven.

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

Get-Service alle services op de computer ophaalt en de System.ServiceProcess.ServiceController objecten in de pijplijn verzendt. Format-Table gebruikt de parameter Eigenschap om op te geven dat de eigenschappen Name en DependentServices worden weergegeven in de tabel.

Name en DependentServices zijn twee van de eigenschappen van het objecttype. Alle eigenschappen weergeven: Get-Service | Get-Member -MemberType Properties

Voorbeeld 6: Een proces opmaken en de uitvoeringsduur ervan berekenen

In dit voorbeeld wordt een tabel weergegeven met de procesnaam en de totale actieve tijd voor de kladblok van de lokale computer processen. De totale uitvoeringsduur wordt berekend door de begintijd van elk proces af te trekken van de huidige tijd.

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 alle kladblok van de lokale computer processen ophaalt en de objecten naar de pijplijn verzendt. Format-Table een tabel met twee kolommen weergegeven: ProcessName, een eigenschap Get-Process en TotalRunningTime, een berekende eigenschap.

De eigenschap TotalRunningTime wordt opgegeven door een hashtabel met twee sleutels, Label en Expression. De label- sleutel geeft de naam van de eigenschap op. Met de Expressie- sleutel wordt de berekening opgegeven. De expressie haalt de eigenschap StartTime van elk procesobject op en trekt deze af van het resultaat van een Get-Date-opdracht, waarmee de huidige datum en tijd worden opgehaald.

Voorbeeld 7: Kladblok-processen opmaken

In dit voorbeeld wordt Get-CimInstance gebruikt om de actieve tijd voor alle kladblok- processen op de lokale computer op te halen. U kunt Get-CimInstance gebruiken met de parameter ComputerName om informatie op te halen van externe computers.

$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 krijgt exemplaren van de WMI-Win32_Process-klasse die alle processen van de lokale computer met de naam notepad.exebeschrijft. De procesobjecten worden opgeslagen in de $Processes variabele.

De procesobjecten in de variabele $Processes worden omlaag verzonden naar Format-Table, waarin de eigenschap ProcessName en een nieuwe berekende eigenschap worden weergegeven, Totale lopende tijd.

Met de opdracht wordt de naam van de nieuwe berekende eigenschap, Totale actieve tijd, toegewezen aan de sleutel Label. Het scriptblok van de Expression-sleutel berekent hoe lang het proces is uitgevoerd door de aanmaakdatum van de processen af te trekken van de huidige datum. De Get-Date-cmdlet haalt de huidige datum op. De aanmaakdatum wordt afgetrokken van de huidige datum. Het resultaat is de waarde van totale lopende tijd.

Voorbeeld 8: Opmaakfouten oplossen

In de volgende voorbeelden ziet u de resultaten van het toevoegen van de DisplayError- of ShowError parameters met een expressie.

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 ".

Parameters

-AutoSize

Geeft aan dat de cmdlet de kolomgrootte en het aantal kolommen aanpast op basis van de breedte van de gegevens. Standaard worden de kolomgrootte en het getal bepaald door de weergave.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DisplayError

Geeft aan dat de cmdlet fouten op de opdrachtregel weergeeft. Deze parameter kan worden gebruikt als hulp bij foutopsporing wanneer u expressies opmaakt in een Format-Table opdracht en problemen met de expressies moet oplossen.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Expand

Hiermee geeft u de indeling van het verzamelingsobject en de objecten in de verzameling. Deze parameter is ontworpen om objecten op te maken die ondersteuning bieden voor de interface ICollection(System.Collections). De standaardwaarde is EnumOnly-. De acceptabele waarden voor deze parameter zijn als volgt:

  • EnumOnly-: geeft de eigenschappen van de objecten in de verzameling weer.
  • CoreOnly-: geeft de eigenschappen van het verzamelingsobject weer.
  • Zowel: geeft de eigenschappen van het verzamelingsobject en de eigenschappen van objecten in de verzameling weer.
Type:String
Geaccepteerde waarden:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Force

Geeft aan dat de cmdlet de cmdlet stuurt om alle foutinformatie weer te geven. Gebruiken met de parameter DisplayError of ShowError. Wanneer een foutobject standaard naar de fout of weergavestreams wordt geschreven, wordt er slechts enkele foutinformatie weergegeven.

Ook vereist bij het opmaken van bepaalde .NET-typen. Zie de sectie Notities voor meer informatie.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-GroupBy

Hiermee geeft u gesorteerde uitvoer in afzonderlijke tabellen op basis van een eigenschapswaarde. U kunt bijvoorbeeld GroupBy- gebruiken om services in afzonderlijke tabellen weer te geven op basis van hun status.

Voer een expressie of een eigenschap in. De parameter GroupBy verwacht dat de objecten zijn gesorteerd. Gebruik de cmdlet Sort-Object voordat u Format-Table gebruikt om de objecten te groeperen.

De waarde van de parameter GroupBy kan een nieuwe berekende eigenschap zijn. De berekende eigenschap kan een scriptblok of een hash-tabel zijn. Geldige sleutel-waardeparen zijn:

  • Naam (of label) - <string>
  • Expressie: <string> of <script block>
  • FormatString - <string>

Zie about_Calculated_Propertiesvoor meer informatie.

Type:Object
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-HideTableHeaders

Hiermee worden de kolomkoppen uit de tabel weggelaten.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-InputObject

Hiermee geeft u de objecten op die moeten worden opgemaakt. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald.

Type:PSObject
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Property

Hiermee geeft u de objecteigenschappen op die worden weergegeven in de weergave en de volgorde waarin ze worden weergegeven. Typ een of meer eigenschapsnamen, gescheiden door komma's of gebruik een hash-tabel om een berekende eigenschap weer te geven. Jokertekens zijn toegestaan.

Als u deze parameter weglaat, zijn de eigenschappen die in de weergave worden weergegeven afhankelijk van de eigenschappen van het eerste object. Als het eerste object bijvoorbeeld PropertyA- en PropertyB heeft, maar volgende objecten PropertyA-, worden PropertyB-en PropertyC-weergegeven, worden alleen de PropertyA- en PropertyB- headers weergegeven.

De parameter eigenschap is optioneel. U kunt de eigenschap niet gebruiken en parameters weergeven in dezelfde opdracht.

De waarde van de parameter eigenschap kan een nieuwe berekende eigenschap zijn. De berekende eigenschap kan een scriptblok of een hash-tabel zijn. Geldige sleutel-waardeparen zijn:

  • Naam (of label) <string>
  • Expressie: <string> of <script block>
  • FormatString - <string>
  • Breedte - <int32> - moet groter zijn dan 0
  • Uitlijning: waarde kan worden Left, Centerof Right

Zie about_Calculated_Propertiesvoor meer informatie.

Type:Object[]
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-RepeatHeader

Herhaalt het weergeven van de koptekst van een tabel na elk scherm volledig. De herhaalde koptekst is handig wanneer de uitvoer wordt doorgesluisd naar een pager, zoals less of more of paging met een schermlezer.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ShowError

Met deze parameter worden fouten verzonden via de pijplijn. Deze parameter kan worden gebruikt als hulp bij foutopsporing wanneer u expressies opmaakt in een Format-Table opdracht en problemen met de expressies moet oplossen.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-View

Vanaf PowerShell 6 worden de standaardweergaven gedefinieerd in PowerShell C# broncode. De *.format.ps1xml bestanden van PowerShell 5.1 en eerdere versies bestaan niet in PowerShell 6 en latere versies.

Met de parameter Weergave kunt u een alternatieve indeling of aangepaste weergave voor de tabel opgeven. U kunt de standaard PowerShell-weergaven gebruiken of aangepaste weergaven maken. Zie about_Format.ps1xmlvoor meer informatie over het maken van een aangepaste weergave.

De alternatieve en aangepaste weergaven voor de parameter Weergave moeten de tabelindeling gebruiken, anders mislukt Format-Table. Als de alternatieve weergave een lijst is, gebruikt u de cmdlet Format-List. Als de alternatieve weergave geen lijst of tabel is, gebruikt u de Format-Custom cmdlet.

U kunt de eigenschap niet gebruiken en parameters weergeven in dezelfde opdracht.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Wrap

Hiermee wordt tekst weergegeven die de kolombreedte op de volgende regel overschrijdt. Tekst die de kolombreedte overschrijdt, wordt standaard afgekapt.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

PSObject

U kunt elk object doorsluisen naar deze cmdlet.

Uitvoerwaarden

Microsoft.PowerShell.Commands.Internal.Format

Met deze cmdlet worden indelingsobjecten geretourneerd die de tabel vertegenwoordigen.

Notities

PowerShell bevat de volgende aliassen voor Format-Table:

  • Alle platforms:
    • ft

PowerShell 7.2 heeft nieuwe functies geïntroduceerd om uitvoer te kleuren. De kleuren kunnen worden beheerd met behulp van de $PSStyle automatische variabele. De eigenschap $PSStyle.Formatting.TableHeader definieert de kleur die wordt gebruikt voor de koptekst van de tabel die door Format-Tablewordt weergegeven. Zie about_ANSI_Terminalsvoor meer informatie over deze instelling.

Als u Format-Table wilt gebruiken met de parameter eigenschap, moet u de parameter Force onder een van de volgende voorwaarden opnemen: