• 22/11/2019
  • 5 minutes pour lire
    • j
    • s
    • B
    • m

PowerShell dispose d’un ensemble de cmdlets qui vous permettent de contrôler la façon dont les propriétés sont affichées pour les objets particuliers. Les noms de toutes les applets de commande commencent par le verbe Format., Ils vous permettent de sélectionner les propriétés que vous souhaitez afficher.

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

Cet article décrit la balise Format-Wide, Format-List et Format-Table applets de commande.

Chaque type d’objet dans PowerShell a des propriétés par défaut qui sont utilisées lorsque vous ne spécifiez pas les propriétés à afficher. Chaque applet de commande utilise également le même paramètre de propriété pour spécifier les propriétés que vous souhaitez afficher., Car Format-Wide n’affiche qu’un seul bien, sa Propertyparameter ne prend qu’une seule valeur, mais les paramètres de propriété de Format-List et Format-Tableaccepter une liste de noms de propriété.

Dans cet exemple, la sortie par défaut de Get-Process cmdlet montre que nous avons deux instances ofInternet Explorer en cours d’exécution.,

Get-Process -Name iexplore

Le format par défaut pour les objets de processus affiche les propriétés affichées ici:

 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

Utilisation du format large pour la sortie d’un seul élément

L’applet de commande Format-Wide, par un objet., Les informations associées à chaque objet sont affichées dans une seule colonne:

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

Vous pouvez également spécifier une propriété non par défaut:

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

Format de contrôle-Affichage large avec Colonne

Avec l’applet de commande Format-Wide, vous ne pouvez afficher qu’une seule propriété à la fois. Cela le rend utile pour afficher de grandes listes dans plusieurs colonnes.,

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

Utilisation de Format-List pour une vue de liste

L’applet de commande Format-List affiche un objet sous la forme d’une liste, avec chaque propriété étiquetée et affichée sur une ligne distincte:

Id : 12808Handles : 578CPU : 13.140625SI : 1Name : iexploreId : 21748Handles : 641CPU : 3.59375SI : 1Name : iexplore

Vous pouvez spécifier autant de propriétés que vous le souhaitez:

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

Obtenir des informations détaillées en utilisant Format-List avec des caractères génériques

Le Format-List cmdlet vous permet d’utiliser un caractère générique comme valeur de son paramètre de propriété., Thislets vous affichez des informations détaillées. Souvent, les objets contiennent plus d’informations que nécessaire, ce qui explique pourquoi PowerShell n’affiche pas toutes les valeurs de propriété par défaut. Pour afficher toutes les propriétés d’un objet, utilisez la commandeFormat-List -Property *. La commande suivante génère plus de 60 lignes de sortie pour un seul processus:

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

Bien que la commande Format-List soit utile pour afficher les détails, si vous voulez un aperçu de la sortie qui comprend de nombreux éléments, une vue tabulaire plus simple est souvent plus utile.,

Utilisation de Format-Table pour la sortie tabulaire

Si vous utilisez l’applet de commandeFormat-Table sans noms de propriétés spécifiés pour formater la sortie de la commandeGet-Process, vous obtenez exactement la même sortie que vous le faites sans une applet de commandeFormat. Par défaut, PowerShell affiche les objets de processus dans un format tabulaire.

Get-Service -Name win* | Format-Table

Amélioration du format-Sortie de table (AutoSize)

Bien qu’une vue tabulaire soit utile pour afficher beaucoup d’informations, il peut être difficile d’interpréter si l’affichage est trop étroit pour les données., Dans l’exemple précédent, la sortie est tronquée. Si vous spécifiez le paramètre AutoSize lorsque vous exécutez la commandeFormat-Table, PowerShell calcule les largeurs de colonne en fonction des données réelles affichées. Cela rend le columnsreadable.

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

L’applet de commandeFormat-Table peut toujours tronquer les données, mais elle ne tronque qu’à la fin de l’écran. Les propriétés, autres que la dernière affichée, sont données autant de taille qu’elles en ont besoin pour que leur élément de données le plus long s’affiche correctement.,

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

Le Format-Table commande suppose que les propriétés sont répertoriées dans l’ordre d’importance. Il tente donc d’afficher complètement les propriétés les plus proches du début. Si la commandeFormat-Table ne peut pas afficher toutes les propriétés, elle supprime certaines colonnes de l’affichage. Vous pouvez voir ce comportement dans l’exemple précédent de la propriété Dependentservices.

Format d’encapsulation-Sortie de la table en colonnes (Encapsulation)

Vous pouvez forcer de longuesFormat-Table données à encapsuler dans sa colonne d’affichage en utilisant le Wrapparameter., L’utilisation du paramètre Wrap peut ne pas faire ce que vous attendez, car il utilise les paramètres par défaut si vous ne spécifiez pas également AutoSize:

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

L’utilisation du paramètre Wrap par lui-même ne ralentit pas beaucoup le traitement. Cependant, utiliser AutoSize pour formater une liste de fichiers récursive d’une grande structure de répertoires peut prendre beaucoup de temps et utiliser beaucoup de mémoire avant d’afficher les premiers éléments de sortie.

Si vous n’êtes pas préoccupé par la charge du système, alors AutoSize fonctionne bien avec le paramètre Wrap.,Les colonnes initiales utilisent toujours autant de largeur que nécessaire pour afficher les éléments sur une ligne, mais la colonne finalcolumn est encapsulée, si nécessaire.

Remarque

Certaines colonnes peuvent ne pas être affichées lorsque vous spécifiez les colonnes les plus larges en premier. Pour de meilleurs résultats,spécifiez d’abord les plus petits éléments de données.

Dans l’exemple suivant, nous spécifions d’abord les propriétés les plus larges.

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

Même avec l’encapsulation, la colonne Id finale est omise:

Organiser la sortie de table (-GroupBy)

Un autre paramètre utile pour le contrôle de sortie tabulaire est GroupBy., Les listes tabulaires plus longues peuvent être difficiles à comparer. Le paramètre GroupBy regroupe la sortie en fonction d’une valeur propertyvalue. Par exemple, nous pouvons regrouper les services par StartType pour faciliter l’inspection, en omettant la valeur Starttype de la liste des propriétés:

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