- 11/22/2019
- 5 minuten te lezen
-
- j
- s
- B
- m
PowerShell is een set van cmdlets die u toelaten om te bepalen hoe de eigenschappen worden weergegeven forparticular objecten. De namen van alle cmdlets beginnen met het werkwoord Format
., Ze laten je selecteren welke eigenschappen je wilt laten zien.
Get-Command -Verb Format -Module Microsoft.PowerShell.Utility
Dit artikel beschrijft deFormat-Wide
,Format-List
, enFormat-Table
cmdlets.
elk objecttype in PowerShell heeft standaard eigenschappen die worden gebruikt wanneer u niet opgeeft welke eigenschappen u wilt weergeven. Elke cmdlet gebruikt ook dezelfde Eigenschappenparameter om aan te geven welke eigenschappen u wilt weergeven., Omdat Format-Wide
slechts een enkele eigenschap toont, neemt de Eigenschappenparameter slechts een enkele waarde, maar de eigenschappenparameters van Format-List
en Format-Table
accepteren een lijst met eigenschapsnamen.
in dit voorbeeld toont de standaarduitvoer van Get-Process
cmdlet aan dat er twee exemplaren van Internet Explorer draaien.,
Get-Process -Name iexplore
het standaardformaat voor Procesobjecten toont de hier getoonde eigenschappen:
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
gebruikmakend van Format-Wide voor Single-Item Output
de Format-Wide
cmdlet geeft standaard alleen de standaardeigenschap van een object weer., Theinformation aan elk object is gekoppeld, wordt weergegeven in één kolom:
Get-Command -Verb Format | Format-Wide
Format-Custom Format-HexFormat-List Format-TableFormat-Wide
ook kunt U een niet-standaard eigenschap:
Get-Command -Verb Format | Format-Wide -Property Noun
Custom HexList TableWide
Controle-Indeling-Grote Display met Kolom
Met de Format-Wide
cmdlet, kunt u alleen de weergave van een enkele eigenschap op een moment. Dit maakt het nuttig voor het weergeven van grote lijsten in meerdere kolommen.,
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex ListTable Wide
Format-List voor een Lijst Weergeven
De Format-List
cmdlet wordt een object in de vorm van een overzicht, waarbij voor elke eigenschap labeledand weergegeven op een aparte regel:
Get-Process -Name iexplore | Format-List
Id : 12808Handles : 578CPU : 13.140625SI : 1Name : iexploreId : 21748Handles : 641CPU : 3.59375SI : 1Name : iexplore
U kunt opgeven zoveel eigenschappen als u wilt:
Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id
het Verkrijgen van Gedetailleerde Gegevens met Behulp van Formaat-Lijst met Wildcards
De Format-List
cmdlet kunt u gebruik maken van een wildcard als de waarde van de parameter Eigenschap., Thislets u gedetailleerde informatie weer te geven. Vaak bevatten objecten meer informatie dan je nodig hebt, daarom toont PowerShell standaard niet alle eigenschapswaarden. Gebruik het commando Format-List -Property *
om alle eigenschappen van een object te tonen. Het volgende commando genereert meer dan 60 regels uitvoer voor een enkel proces:
Get-Process -Name iexplore | Format-List -Property *
hoewel het Format-List
Commando nuttig is voor het tonen van details, als u een overzicht wilt van uitvoer die veel items bevat, is een eenvoudiger tabelweergave vaak nuttiger.,
met Format-Table voor Tabeluitvoer
Als u de Format-Table
cmdlet gebruikt zonder eigenschapsnamen om de uitvoer van de opdrachtGet-Process
op te maken, krijgt u precies dezelfde uitvoer als zonder een Format
cmdlet. Bydefault, PowerShell toont Procesobjecten in een tabelindeling.
Get-Service -Name win* | Format-Table
Improving Format-Table Output (AutoSize)
hoewel een tabelweergave nuttig is voor het weergeven van veel informatie, kan het moeilijk zijn om te interpreteren als het scherm te smal is voor de gegevens., In het vorige voorbeeld werd de uitvoer onderbroken. Als u de AutoSize parameter opgeeft wanneer u het commando Format-Table
uitvoert,berekent PowerShell kolombreedtes op basis van de werkelijke weergegeven gegevens. Dit maakt de zuilenleesbaar.
Get-Service -Name win* | Format-Table -AutoSize
de Format-Table
cmdlet kan nog steeds data afkappen, maar het wordt alleen aan het einde van het scherm afgekapt. Eigenschappen, anders dan de laatste weergegeven, krijgen zo veel grootte als ze nodig hebben voor hunlangst data element correct weer te geven.,
Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -AutoSize
het commando Format-Table
gaat ervan uit dat eigenschappen in volgorde van belang worden weergegeven. Dus het probeert de eigenschappen het dichtst bij het begin volledig weer te geven. Als het Format-Table
commando niet alle eigenschappen kan weergeven, verwijdert het enkele kolommen van het scherm. U kunt dit gedrag te zien in dedependentservices eigenschap vorige voorbeeld.
Wrapping Format-Table Output in Columns (Wrap)
u kunt lange Format-Table
data forceren om binnen de weergavekolom te worden afgewikkeld met behulp van de Wrapparameter., Het gebruik van de Wrap parameter kan niet doen wat je verwacht, omdat het standaard instellingen gebruikt als je niet ook AutoSize opgeeft:
Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -Wrap
het gebruik van de Wrap parameter zelf vertraagt de verwerking niet erg. Het gebruik van automosize om een recursieve bestandslijst van een grote mapstructuur te formatteren, kan echter lang duren en veel geheugen gebruiken voordat de eerste uitvoeritems worden weergegeven.
als je je geen zorgen maakt over systeembelasting, dan werkt AutoSize goed met de Wrap parameter.,De eerste kolommen gebruiken nog steeds zoveel breedte als nodig is om items op één regel weer te geven, maar de eindkolom is, indien nodig, afgebroken.
Note
sommige kolommen worden mogelijk niet weergegeven wanneer u eerst de breedste kolommen specificeert. Geef voor de beste resultaten eerst de kleinste gegevenselementen op.
in het volgende voorbeeld specificeren we eerst de breedste eigenschappen.
Get-Process -Name iexplore | Format-Table -Wrap -AutoSize -Property FileVersion,Path,Name,Id
zelfs bij wrapping wordt de laatste id-kolom weggelaten:
organiserende Tabeluitvoer (- GroupBy)
een andere nuttige parameter voor tabeluitvoercontrole is GroupBy., Langere tabellijsten in het bijzonder kan moeilijk te vergelijken. De GroupBy parameter groepeert uitvoer gebaseerd op een eigenwaarde. We kunnen services bijvoorbeeld groeperen op StartType voor eenvoudiger inspectie, waarbij we de waarde van het starttype weglaten uit de property listing:
Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType