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 bestanden gebruiken .ps1xml
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.ps1xml voor 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 Property of GroupBy . Zie about_Hash_Tables voor 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 Format-Table
en weergegeven in een tabel. De parameter AutoSize past de kolombreedten aan om 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 de pijplijn Sort-Object
. De objecten worden gesorteerd in de volgorde van de eigenschap BasePriority .
De gesorteerde objecten worden naar de pijplijn Format-Table
verzonden. De GroupBy-parameter rangschikt de procesgegevens in groepen op basis van de waarde van de eigenschap BasePriority . 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 de System.Diagnostics.Process-objecten op die de processen vertegenwoordigen die op de computer worden uitgevoerd. De objecten worden naar de pijplijn Sort-Object
verzonden en worden gesorteerd op basis van de eigenschap StartTime .
De gesorteerde objecten worden naar de pijplijn Format-Table
verzonden. De weergaveparameter geeft de StartTime-weergave op die is gedefinieerd in het PowerShell-bestand DotNetTypes.format.ps1xml
voor System.Diagnostics.Process-objecten . De weergave StartTime converteert elke begintijd van processen naar een korte datum en groepeert de processen vervolgens op de begindatum.
Het DotNetTypes.format.ps1xml
bestand bevat een prioriteitsweergave 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.ps1xml voor 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
haalt de inhoud van de huidige map op. C:\Test
De objecten System.IO.DirectoryInfo en System.IO.FileInfo worden via de pijplijn verzonden.
Format-Table
gebruikt de parameter Weergave om de aangepaste weergave mygciview op te geven 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 Name en DependentServices worden weergegeven.
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
haalt alle services op de computer op en verzendt de System.ServiceProcess.ServiceController-objecten in de pijplijn. 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 uitvoeringsduur voor de kladblokprocessen van de lokale computer. 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
haalt alle kladblokprocessen van de lokale computer op en verzendt de objecten omlaag in de pijplijn. Format-Table
geeft een tabel weer met twee kolommen: ProcessName, een Get-Process
eigenschap en TotalRunningTime, een berekende eigenschap.
De eigenschap TotalRunningTime wordt opgegeven door een hash-tabel met twee sleutels, Label en Expressie. De labelsleutel geeft de naam van de eigenschap op. De expressiesleutel geeft de berekening aan. 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 de Get-CimInstance
actieve tijd voor alle kladblokprocessen op de lokale computer weergegeven. U kunt de parameter ComputerName gebruiken Get-CimInstance
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
haalt exemplaren op van de WMI-Win32_Process-klasse die alle processen van de lokale computer met de naam notepad.exe beschrijft. De procesobjecten worden opgeslagen in de $Processes
variabele.
De procesobjecten in de $Processes
variabele worden omlaag verzonden naar Format-Table
de pijplijn, waarin de eigenschap ProcessName en een nieuwe berekende eigenschap, De totale actieve tijd, worden weergegeven.
Met de opdracht wordt de naam van de nieuwe berekende eigenschap, De totale actieve tijd, toegewezen aan de labelsleutel . Het scriptblok van de expressiesleutel berekent hoe lang het proces wordt 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 de totale lopende tijd.
Voorbeeld 8: Opmaakfouten oplossen
In de volgende voorbeelden ziet u de resultaten van het toevoegen van de parameters DisplayError of ShowError 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 in een Format-Table
opdracht opmaakt 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.
- Beide: 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 worden gesorteerd.
Gebruik de Sort-Object
cmdlet voordat u Format-Table
de objecten 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_Properties voor 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, PropertyB en PropertyC hebben, worden alleen de headers PropertyA en PropertyB weergegeven.
De parameter Eigenschap is optioneel. U kunt de eigenschaps- en weergaveparameters niet gebruiken 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 dan0
- Uitlijning - waarde kan
Left
zijn,Center
ofRight
Zie about_Calculated_Properties voor 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
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 in een Format-Table
opdracht opmaakt 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-broncode C#
. De *.format.ps1xml
bestanden van PowerShell 5.1 en eerdere versies bestaan niet in PowerShell 6 en nieuwere 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.ps1xml voor meer informatie over het maken van een aangepaste weergave.
De alternatieve en aangepaste weergaven voor de parameter Weergave moeten de tabelindeling gebruiken, Format-Table
anders mislukt het. Als de alternatieve weergave een lijst is, gebruikt u de Format-List
cmdlet. Als de alternatieve weergave geen lijst of tabel is, gebruikt u de Format-Custom
cmdlet.
U kunt de eigenschaps- en weergaveparameters niet gebruiken 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
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 $PSStyle.Formatting.TableHeader
eigenschap definieert de kleur die wordt gebruikt voor de koptekst van de tabel die wordt weergegeven door Format-Table
. Zie about_ANSI_Terminals voor meer informatie over deze instelling.
Als u de parameter Eigenschap wilt gebruikenFormat-Table
, moet u de parameter Force opnemen onder een van de volgende voorwaarden:
De invoerobjecten worden normaal gesproken out-of-band opgemaakt met behulp van de
ToString()
methode. Dit geldt voor[string]
en .NET primitieve typen, die een superset zijn van de ingebouwde numerieke typen, zoals[int]
,[long]
en andere.De invoerobjecten hebben geen openbare eigenschappen.
De invoerobjecten zijn exemplaren van de wrappertypen die PowerShell gebruikt voor andere uitvoerstromen dan de uitvoerstroom Geslaagd. Dit is alleen van toepassing wanneer deze wrapper-typen worden verzonden naar de uitvoerstroom Geslaagd waarvoor ze moeten worden vastgelegd via algemene parameters, zoals ErrorVariable first of met behulp van een omleiding zoals
*>&1
.