Partager via


Format-Table

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

Syntaxe

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-RepeatHeader]
      [-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. Vous pouvez utiliser le paramètre Property pour sélectionner les propriétés à afficher.

PowerShell utilise des formateurs par défaut pour définir la façon dont les types d’objets sont affichés. Vous pouvez utiliser .ps1xml fichiers pour créer des vues personnalisées qui affichent une table de sortie avec des propriétés spécifiées. Une fois qu’une vue personnalisée est créée, utilisez le paramètre View pour afficher la table avec votre vue personnalisée. Pour plus d’informations sur les vues, consultez about_Format.ps1xml.

Vous pouvez 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. Pour plus d’informations sur les tables de hachage, consultez about_Hash_Tables.

Exemples

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

Cet exemple affiche des informations sur le programme hôte pour PowerShell dans un tableau.

Get-Host | Format-Table -AutoSize

L’applet de commande Get-Host obtient System.Management.Automation.Internal.Host.InternalHost objets qui représentent l’hôte. Les objets sont envoyés vers le bas du pipeline pour Format-Table et affichés dans un tableau. Le paramètre AutoSize ajuste les largeurs de colonne pour réduire la troncation.

Exemple 2 : Mettre en forme les processus par BasePriority

Dans cet exemple, les processus sont affichés dans des groupes qui ont la même propriété BasePriority.

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

L’applet de commande Get-Process obtient des objets qui représentent chaque processus sur l’ordinateur et les envoie au pipeline pour Sort-Object. Les objets sont triés dans l’ordre de leur propriété BasePriority.

Les objets triés sont envoyés vers le bas du pipeline pour Format-Table. Le paramètre GroupBy organise les données de processus en groupes en fonction de leur valeur BasePriority propriété. 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

Cet exemple affiche des informations sur les processus en cours d’exécution sur l’ordinateur. Les objets sont triés et Format-Table utilise une vue pour regrouper les objets par date de début.

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

Get-Process obtient les objets System.Diagnostics.Process qui représentent les processus en cours d’exécution sur l’ordinateur. Les objets sont envoyés vers le bas du pipeline pour Sort-Objectet sont triés en fonction de la propriété StartTime.

Les objets triés sont envoyés vers le bas du pipeline pour Format-Table. Le paramètre View spécifie la vue StartTime définie dans le fichier powerShell DotNetTypes.format.ps1xml pour les objets System.Diagnostics.Process. La vue StartTime convertit l’heure de début de chaque processus en une date courte, puis regroupe les processus par date de début.

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

Exemple 4 : Utiliser une vue personnalisée pour la sortie de table

Dans cet exemple, une vue personnalisée affiche le contenu d’un répertoire. La vue personnalisée ajoute la colonne CreationTime à la sortie de la table pour System.IO.DirectoryInfo et objets System.IO.FileInfo créés par Get-ChildItem.

L’affichage personnalisé de cet exemple a été créé à partir de la vue définie dans le code source PowerShell. Pour plus d’informations sur les vues et le code utilisé pour créer la vue de cet exemple, consultez about_Format.ps1xml.

Get-ChildItem  -Path C:\Test | Format-Table -View MyGciView

Directory: C:\Test

Mode                LastWriteTime              CreationTime         Length Name
----                -------------              ------------         ------ ----
d-----        11/4/2019     15:54       9/24/2019     15:54                Archives
d-----        8/27/2019     14:22       8/27/2019     14:22                Drawings
d-----       10/23/2019     09:38       2/25/2019     09:38                Files
-a----        11/7/2019     11:07       11/7/2019     11:07          11345 Alias.txt
-a----        2/27/2019     15:15       2/27/2019     15:15            258 alias_out.txt
-a----        2/27/2019     15:16       2/27/2019     15:16            258 alias_out2.txt

Get-ChildItem obtient le contenu du répertoire actif, C:\Test. Les objets System.IO.DirectoryInfo et System.IO.FileInfo sont envoyés vers le bas du pipeline. Format-Table utilise le paramètre View pour spécifier la vue personnalisée MyGciView qui inclut la colonne CreationTime.

La sortie Format-Table par défaut pour Get-ChildItem n’inclut pas la colonne CreationTime.

Exemple 5 : Utiliser des propriétés pour la sortie de table

Cet exemple utilise le paramètre Property pour afficher tous les services de l’ordinateur dans une table à deux colonnes qui affiche les propriétés Name et DependentServices.

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

Get-Service obtient tous les services sur l’ordinateur et envoie les objets System.ServiceProcess.ServiceController vers le bas du pipeline. Format-Table utilise le paramètre Property pour spécifier que les propriétés Name et DependentServices sont affichées dans la table.

Name et DependentServices sont deux des propriétés du type d’objet. Pour afficher toutes les propriétés : Get-Service | Get-Member -MemberType Properties

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

Cet exemple montre comment afficher une table avec le nom du processus et le temps d’exécution total pour les processus du bloc-notes de 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.

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

ProcessName TotalRunningTime
----------- ----------------
notepad     03:20:00.2751767
notepad     00:00:16.7710520

Get-Process obtient tous les bloc-notes de l’ordinateur local traite et envoie les objets vers le bas du pipeline. Format-Table affiche une table avec deux colonnes : ProcessName, une propriété Get-Process 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. La clé label spécifie le nom de la propriété. La clé expression spécifie le calcul. 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 7 : Mettre en forme les processus du Bloc-notes

Cet exemple utilise Get-CimInstance pour obtenir le temps d’exécution de tous les processus bloc-notes sur l’ordinateur local. Vous pouvez utiliser Get-CimInstance avec le paramètre ComputerName pour obtenir des informations à partir d’ordinateurs distants.

$Processes = Get-CimInstance -Class Win32_Process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
    Label = "Total Running Time"
    Expression = {(Get-Date) - $_.CreationDate}
}

ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922

Get-CimInstance obtient des instances de la classe Win32_Process WMI qui décrit tous les processus de l’ordinateur local nommés notepad.exe. Les objets de processus sont stockés dans la variable $Processes.

Les objets de processus de la variable $Processes sont envoyés au pipeline vers Format-Table, qui affiche la propriété ProcessName et une nouvelle propriété calculée, Durée d’exécution totale.

La commande affecte le nom de la nouvelle propriété calculée, Durée d’exécution totale, à la clé Label. Le bloc de script expression clé calcule la durée pendant laquelle le processus est en cours d’exécution en soustrayant la date de création des processus à partir de la date actuelle. L’applet de commande Get-Date obtient la date actuelle. La date de création est soustraite de la date actuelle. Le résultat est la valeur de durée d’exécution totale.

Exemple 8 : 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.

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

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

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

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

InvalidArgument: Failed to evaluate expression " $_ / $null ".

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:False
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 peut être utilisé comme aide de débogage lorsque vous mettez en forme des expressions dans une commande Format-Table et que vous devez résoudre les problèmes liés aux expressions.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
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 et des 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 :

  • EnumOnly: 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.

Obligatoire également lors de la mise en forme de certains types .NET. Pour plus d’informations, consultez la section Notes.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
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é. Le paramètre GroupBy s’attend à ce que les objets soient triés. Utilisez l’applet de commande Sort-Object avant d’utiliser Format-Table pour regrouper les objets.

La valeur du paramètre GroupBy peut être une nouvelle propriété calculée. La propriété calculée peut être un bloc de script ou une table de hachage. Les paires clé-valeur valides sont les suivantes :

  • Nom (ou étiquette) - <string>
  • Expression - <string> ou <script block>
  • FormatString - <string>

Pour plus d’informations, consultez about_Calculated_Properties.

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:False
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, PropertyBet PropertyC, alors seuls les en-têtes PropertyA etPropertyB sont affichés.

Le 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. La propriété calculée peut être un bloc de script ou une table de hachage. Les paires clé-valeur valides sont les suivantes :

  • Nom (ou étiquette) <string>
  • Expression - <string> ou <script block>
  • FormatString - <string>
  • Largeur - <int32> - doit être supérieure à 0
  • Alignement : la valeur peut être Left, Centerou Right

Pour plus d’informations, consultez about_Calculated_Properties.

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

-RepeatHeader

Répète l’affichage de l’en-tête d’un tableau après chaque écran plein. L’en-tête répété est utile lorsque la sortie est redirigée vers un pagineur tel que less ou more ou la pagination avec un lecteur d’écran.

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

-ShowError

Ce paramètre envoie des erreurs via le pipeline. Ce paramètre peut être utilisé comme aide de débogage lorsque vous mettez en forme des expressions dans une commande Format-Table et que vous devez résoudre les problèmes liés aux expressions.

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

-View

À compter de PowerShell 6, les vues par défaut sont définies dans PowerShell C# code source. Les fichiers *.format.ps1xml de PowerShell 5.1 et versions antérieures n’existent pas dans PowerShell 6 et versions ultérieures.

Le paramètre View vous permet de spécifier un autre format ou vue personnalisée pour le tableau. Vous pouvez utiliser les vues PowerShell par défaut ou créer des vues personnalisées. Pour plus d’informations sur la création d’une vue personnalisée, consultez about_Format.ps1xml.

Les vues alternatives et personnalisées pour le paramètre View doivent utiliser le format de tableau ; sinon, Format-Table échoue. Si l’affichage de remplacement est une liste, utilisez l’applet de commande Format-List. Si l’affichage de remplacement n’est pas une liste ou une table, utilisez l’applet de commande Format-Custom.

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:False
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 cette applet de commande.

Sorties

Microsoft.PowerShell.Commands.Internal.Format

Cette applet de commande retourne des objets de format qui représentent le tableau.

Notes

PowerShell inclut les alias suivants pour Format-Table:

  • Toutes les plateformes :
    • ft

PowerShell 7.2 a introduit de nouvelles fonctionnalités pour coloriser la sortie. Les couleurs peuvent être gérées à l’aide de la variable automatique $PSStyle. La propriété $PSStyle.Formatting.TableHeader définit la couleur utilisée pour l’en-tête du tableau affiché par Format-Table. Pour plus d’informations sur ce paramètre, consultez about_ANSI_Terminals.

Si vous souhaitez utiliser Format-Table avec le paramètre Property, vous devez inclure le paramètre force dans l’une des conditions suivantes :