- 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-Wide
endast visar en enskild egenskap tar dess Propertyparameter endast ett enda värde, men egenskapsparametrarna förFormat-List
ochFormat-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
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex ListTable Wide
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