• 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-Tableaccepteren 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