• 11/22/2019
  • 5 minuter att läsa
    • j
    • s
    • B
    • m

PowerShell har en uppsättning cmdlets som låter dig styra hur egenskaper visas förpartikulära objekt. Namnen på alla cmdlets börjar med verbet Format., De låter dig väljavilka egenskaper du vill visa.

Get-Command -Verb Format -Module Microsoft.PowerShell.Utility

i den här artikeln beskrivsFormat-Wide,Format-List ochFormat-Table cmdlets.

varje objekttyp i PowerShell har standardegenskaper som används när du inte anger vilkaegenskaper som ska visas. Varje cmdlet använder också samma Egenskapsparameter för att ange vilkaegenskaper du vill visa., Eftersom Format-Wideendast visar en enskild egenskap tar dess Propertyparameter endast ett enda värde, men egenskapsparametrarna förFormat-ListochFormat-Table accepterar en lista med egenskapsnamn.

i det här exemplet visar standardutmatningen för Get-Process cmdlet att vi har två instanser avInternet Explorer som körs.,

Get-Process -Name iexplore

standardformatet för processobjekt visar egenskaperna som visas här:

 NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- ----------- 32 25.52 10.25 13.11 12808 1 iexplore 52 11.46 26.46 3.55 21748 1 iexplore

använda format-Wide för enstaka objekt utgång

Format-Wide cmdlet, som standard, visar bara standardegenskapen för ett objekt., Informationen som är associerad med varje objekt visas i en enda kolumn:

Get-Command -Verb Format | Format-Wide
Format-Custom Format-HexFormat-List Format-TableFormat-Wide

Du kan också ange en icke-standardegenskap:

Get-Command -Verb Format | Format-Wide -Property Noun
Custom HexList TableWide

kontrollerande Format-wide Display med kolumn

med

Get-Command -Verb Format | Format-Wide -Property Noun
Custom HexList TableWide

kontrollerande Format-wide Display med kolumn ID = ”46af92cb70” > cmdlet, du kan bara visa en enda egenskap åt gången. Detta gör detanvändbart för att visa stora listor i flera kolumner.,

Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex ListTable Wide

använda Format-lista för en listvy

Format-List cmdlet visar ett objekt i form av en lista, med varje egenskapslabeladoch visas på en separat rad:

Get-Process -Name iexplore | Format-List
Get-Process -Name iexplore | Format-List

Du kan ange så många egenskaper som du vill:

Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id

få detaljerad information genom att använda format-lista med jokertecken

Format-List cmdlet låter dig använda ett jokertecken som värdet av dess egenskapsparameter., Här visas detaljerad information. Ofta innehåller objekt mer information än du behöver, vilketär varför PowerShell inte visar alla egenskapsvärden som standard. För att visa alla egenskaper förett objekt, använd kommandot Format-List -Property *. Följande kommando genererar över 60 rader av utdata för en enda process:

Get-Process -Name iexplore | Format-List -Property *

även om kommandot Format-List är användbart för att visa detaljer, om du vill ha en översikt över utdatasom innehåller många objekt, är en enklare tabellvy ofta mer användbar.,

använda Format-Tabell för Tabellutmatning

om du använder kommandotFormat-Table cmdlet utan egenskapsnamn som anges för att formatera utdata från kommandotGet-Process får du exakt samma utdata som du gör utanFormat cmdlet. Bydefault, PowerShell visar processobjekt i ett tabellformat.

Get-Service -Name win* | Format-Table

förbättra format-Tabellutmatning (AutoSize)

även om en tabellvy är användbar för att visa massor av information, kan det vara svårt atttolka om displayen är för smal för data., I föregående exempel, utmatningen ikorrigeras. Om du anger parametern AutoSize när du kör kommandot Format-Table beräknar PowerShell kolumnbredder baserat på de faktiska data som visas. Detta gör kolumnernaläsbar.

Get-Service -Name win* | Format-Table -AutoSize

Format-Table cmdlet kan fortfarande trunkera data, men det trunkerar bara i slutet av skärmen. Egenskaper, andra än den sista som visas, ges så mycket storlek som de behöver för att deraslångaste dataelementet ska visas korrekt.,

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -AutoSize

kommandotFormat-Table förutsätter att egenskaper listas i storleksordning. Så det försökeratt fullt ut visa egenskaperna närmast början. Om kommandotFormat-Table inte kan visa egenskaperna tar det bort några kolumner från displayen. Du kan se detta beteende idependentservices-egenskapen föregående exempel.

Wrapping Format-Table Output in Columns (Wrap)

Du kan tvinga långaFormat-Table data att linda in i sin display kolumn med hjälp av Wrapparameter., Att använda Wrap-parametern kanske inte gör vad du förväntar dig, eftersom den använder inställningarna för Default om du inte också anger AutoSize:

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -Wrap

Om du använder Wrap-parametern i sig saktar inte behandlingen väldigt mycket. Men att användaautosize för att formatera en rekursiv fillistning av en stor katalogstruktur kan ta lång tidoch använda massor av minne innan du visar de första utgångsobjekten.

Om du inte är orolig för systembelastning fungerar AutoSize bra med Wrap-parametern.,De ursprungliga kolumnerna använder fortfarande så mycket bredd som behövs för att visa objekt på en rad, men den finalkolumnen är insvept, om det behövs.

Obs

vissa kolumner kanske inte visas när du först anger de bredaste kolumnerna. För bästa resultat,ange de minsta dataelementen först.

i följande exempel anger vi först de bredaste egenskaperna.

Get-Process -Name iexplore | Format-Table -Wrap -AutoSize -Property FileVersion,Path,Name,Id

även vid inslagning utelämnas den slutliga ID-kolumnen:

organisera Tabellutgång (- GroupBy)

en annan användbar parameter för tabellutgångskontroll är GroupBy., Längre tabellförteckningar inparticular kan vara svårt att jämföra. Den groupBy parametergrupper utgång baserat på en propertyvalue. Till exempel kan vi gruppera tjänster genom StartType för enklare inspektion, utelämnastarttype-värdet från egenskapsuppgiften:

Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType