Partager via


Format-Table

Met en forme la sortie sous la forme d’une table.

Syntaxe

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-HideTableHeaders]
      [-Wrap]
      [-GroupBy <Object>][-View <string>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <string>]
      [-InputObject <psobject>][<CommonParameters>]

Description

L’applet de commande Format-Table met en forme la sortie d’une commande sous forme de table avec les propriétés sélectionnées de l’objet dans chaque colonne. Le type d’objet détermine la disposition et les propriétés par défaut affichées dans chaque colonne, mais vous pouvez utiliser le paramètre Property pour sélectionner les propriétés que vous souhaitez afficher.

Vous pouvez également utiliser une table de hachage pour ajouter des propriétés calculées à un objet avant de l’afficher et de spécifier les en-têtes de colonne dans la table. Pour ajouter une propriété calculée, utilisez le paramètre Property ou GroupBy.

Exemples

Exemple 1 : Mettre en forme l’hôte PowerShell

Cette commande affiche des informations sur le programme hôte pour PowerShell dans une table. Par défaut, ils sont mis en forme dans une liste.

Get-Host | Format-Table -AutoSize

L’applet de commande Get-Host obtient des objets représentant l’hôte. L’opérateur de pipeline (|) transmet l’objet à l’applet de commande Format-Table. L’applet de commande Format-Table met en forme les objets d’une table. Le paramètre AutoSize ajuste les largeurs de colonne pour réduire la troncation.

Exemple 2 : Mettre en forme les processus par BasePriority

Cette commande affiche les processus sur l’ordinateur dans des groupes avec la même priorité de base.

Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap

L’applet de commande Get-Process obtient des objets représentant chaque processus sur l’ordinateur. L’opérateur de pipeline (|) transmet l’objet à l’applet de commande Sort-Object, qui trie les objets dans l’ordre de leur priorité de base.

Un autre opérateur de pipeline transmet les résultats à l’applet de commande Format-Table. Le paramètre GroupBy organise les données relatives aux processus en groupes en fonction de la valeur de leur propriété BasePriority. Le paramètre Wrap garantit que les données ne sont pas tronquées.

Exemple 3 : Mettre en forme les processus par date de début

Get-Process | Sort-Object starttime | Format-Table -View starttime

Cette commande affiche des informations sur les processus sur l’ordinateur du groupe en fonction de la date de début du processus. Il utilise l’applet de commande Get-Process pour obtenir des objets représentant les processus sur l’ordinateur. L’opérateur de pipeline (|) envoie la sortie de Get-Process à l’applet de commande Sort-Object, qui la trie en fonction de la propriété StartTime. Un autre opérateur de pipeline envoie les résultats triés à Format-Table.

Le paramètre View est utilisé pour sélectionner la vue StartTime définie dans le fichier pour les objets System.Diagnostics.Process, tels que ceux retournés par . Cette vue convertit l'StartTime du processus en une date courte, puis regroupe les processus par date de début.

Le fichier DotNetTypes.format.ps1xml contient également une vue Priorité pour les processus. Vous pouvez créer vos propres fichiers format.ps1xml avec des vues personnalisées.

Exemple 4 : Mettre en forme les services

Get-Service | Format-Table -Property Name, DependentServices

Cette commande affiche tous les services sur l’ordinateur d’une table avec deux colonnes, Name et DependentServices. L’applet de commande Get-Service obtient tous les services sur l’ordinateur. L’opérateur de pipeline (|) envoie les résultats à l’applet de commande Format-Table, qui met en forme la sortie dans une table. Le paramètre Property spécifie les propriétés qui apparaissent dans la table sous forme de colonnes. Le nom du paramètre Property est facultatif. Vous pouvez donc l’omettre, par exemple .

Name et DependentServices ne sont que deux des propriétés des objets de service. Pour afficher toutes les propriétés, tapez Get-Service | Get-Member -MemberType Properties.

Exemple 5 : Mettre en forme un processus et calculer son temps d’exécution

Cette commande montre comment utiliser une propriété calculée dans une table.

Get-Process Notepad | Format-Table ProcessName,
   @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

La commande affiche une table avec le nom du processus et le temps d’exécution total de tous les processus du Bloc-notes sur l’ordinateur local. Le temps d’exécution total est calculé en soustrayant l’heure de début de chaque processus de l’heure actuelle.

La commande utilise l’applet de commande Get-Process pour obtenir tous les processus nommés Bloc-notes sur l’ordinateur local. L’opérateur de pipeline (|) envoie les résultats à Format-Table, qui affiche une table avec deux colonnes : ProcessName, une propriété standard de processus et TotalRunningTime, une propriété calculée.

La propriété TotalRunningTime est spécifiée par une table de hachage avec deux clés, Label et Expression. Le nom de la propriété est affecté à la clé label . Le calcul est affecté à la clé expression . L’expression obtient la propriété StartTime de chaque objet de processus et la soustrait du résultat d’une commande Get-Date, qui obtient la date et l’heure actuelles.

Exemple 6 : Mettre en forme les processus du Bloc-notes

Ces commandes sont similaires à la commande précédente, sauf que ces commandes utilisent l’applet de commande Get-WmiObject.

$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}

La première commande utilise l’applet de commande Get-WmiObject pour obtenir des instances de la classe WMI Win32_Process qui décrivent tous les processus sur l’ordinateur Server01 nommé Notepad.exe. La commande stocke les informations de processus dans la variable $Processes.

La deuxième commande utilise un opérateur de pipeline (|) pour envoyer les informations de processus dans la variable à l’applet de commande , qui affiche le ProcessName et une nouvelle propriété calculée.

La commande attribue le nom de la nouvelle propriété calculée , « Durée d’exécution totale », à la clé Label. Le bloc de script affecté à la clé Expression calcule la durée pendant laquelle le processus est en cours d’exécution en soustrayant la date de création du processus à partir de la date actuelle. L’applet de commande Get-Date obtient la date actuelle. La méthode ConvertToDateTime convertit la propriété CreationDate de l’objet Win32_Process d’un objet WMI CIM_DATETIME en objet DateTime .NET qui peut être comparé à la sortie de . Ensuite, la date de création convertie est soustraite de la date actuelle. Le résultat est la valeur de durée d’exécution totale.

Exemple 7 : Résolution des erreurs de format

Les exemples suivants montrent les résultats de l’ajout des paramètres DisplayError ou ShowError avec une expression.

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday

Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
    + FullyQualifiedErrorId : mshExpressionError

Paramètres

-AutoSize

Indique que l’applet de commande ajuste la taille et le nombre de colonnes en fonction de la largeur des données. Par défaut, la taille et le nombre de colonnes sont déterminés par la vue.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DisplayError

Indique que l’applet de commande affiche des erreurs sur la ligne de commande. Ce paramètre est rarement utilisé, mais peut être utilisé comme aide de débogage lorsque vous mettez en forme des expressions dans une commande Format-Table et que les expressions ne semblent pas fonctionner.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Expand

Spécifie le format de l’objet de collection, ainsi que les objets de la collection. Ce paramètre est conçu pour mettre en forme des objets qui prennent en charge l’interface ICollection (System.Collections). La valeur par défaut est EnumOnly. Les valeurs acceptables pour ce paramètre sont les suivantes :

  • ÉnumérationOnly : affiche les propriétés des objets de la collection.
  • CoreOnly : affiche les propriétés de l’objet de collection.
  • Les deux : affiche les propriétés de l’objet de collection et les propriétés des objets de la collection.
Type:String
Valeurs acceptées:CoreOnly, EnumOnly, Both
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Force

Indique que l’applet de commande dirige l’applet de commande pour afficher toutes les informations d’erreur. Utilisez le paramètre DisplayError ou ShowError. Par défaut, lorsqu’un objet d’erreur est écrit dans les flux d’erreur ou d’affichage, seules certaines informations d’erreur sont affichées.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-GroupBy

Spécifie la sortie triée dans des tables distinctes en fonction d’une valeur de propriété. Par exemple, vous pouvez utiliser GroupBy pour répertorier les services dans des tables distinctes en fonction de leur état.

Entrez une expression ou une propriété de la sortie. La sortie doit être triée avant de l’envoyer à Format-Table.

La valeur du paramètre GroupBy peut être une nouvelle propriété calculée. Pour créer une propriété calculée, utilisez une table de hachage. Les clés valides sont les suivantes :

  • Nom (ou Étiquette) <chaîne>
  • > de bloc de script <chaîne> ou <
  • FormatString <chaîne>
Type:Object
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-HideTableHeaders

Omettez les en-têtes de colonne de la table.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie les objets à mettre en forme. Entrez une variable qui contient les objets, ou tapez une commande ou une expression qui obtient les objets.

Type:PSObject
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Property

Spécifie les propriétés d’objet qui apparaissent dans l’affichage et l’ordre dans lequel ils apparaissent. Tapez un ou plusieurs noms de propriétés (séparés par des virgules) ou utilisez une table de hachage pour afficher une propriété calculée. Les caractères génériques sont autorisés.

Si vous omettez ce paramètre, les propriétés qui apparaissent dans l’affichage dépendent des propriétés du premier objet. Par exemple, si le premier objet a PropertyA et PropertyB, mais que les objets suivants ont PropertyA, PropertyB et PropertyC uniquement PropertyA et Les en-têtes PropertyB s’affichent.

Le nom du paramètre Property est facultatif. Vous ne pouvez pas utiliser les paramètres Property et View dans la même commande.

La valeur du paramètre Property peut être une nouvelle propriété calculée. Pour créer une propriété calculée, utilisez une table de hachage. Les clés valides sont les suivantes :

  • Nom (ou Étiquette) <chaîne>
  • > de bloc de script <chaîne> ou <
  • FormatString <chaîne>
  • Largeur <int32>
  • Alignement (la valeur peut être « Left », « Center » ou « Right »)
Type:Object[]
Position:0
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-ShowError

Envoie des erreurs via le pipeline. Ce paramètre est rarement utilisé, mais peut être utilisé comme aide de débogage lorsque vous mettez en forme des expressions dans une commande Format-Table et que les expressions ne semblent pas fonctionner.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-View

Spécifie le nom d’un autre format de tableau ou vue. Vous ne pouvez pas utiliser les paramètres Property et View dans la même commande.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Wrap

Affiche le texte qui dépasse la largeur de colonne sur la ligne suivante. Par défaut, le texte qui dépasse la largeur de colonne est tronqué.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

PSObject

Vous pouvez diriger n’importe quel objet vers Format-Table.

Sorties

Microsoft.PowerShell.Commands.Internal.Format

Format-Table retourne des objets de format qui représentent le tableau.

Notes

Le paramètre GroupBy suppose que les objets sont triés. Utilisez l’applet de commande Sort-Object avant d’utiliser Format-Table pour regrouper les objets.

Le paramètre View vous permet de spécifier un autre format pour le tableau. Vous pouvez utiliser les vues définies dans les fichiers *.format.PS1XML dans le répertoire PowerShell ou créer vos propres vues dans de nouveaux fichiers PS1XML, puis utiliser l’applet de commande Update-FormatData pour les inclure dans PowerShell. Les autres vues pour le paramètre View doivent utiliser le format de table ; sinon, la commande échoue. Si l’affichage de remplacement est une liste, utilisez l’applet de commande Format-List. Si l’autre affichage n’est ni une liste ni une table, utilisez l’applet de commande Format-Custom.