Format-Table
Met en forme la sortie en tant que table.
Syntax
Format-Table
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[[-Property] <Object[]>]
[-GroupBy <Object>]
[-View <String>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <String>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
L’applet Format-Table
de commande met en forme la sortie d’une commande en tant que 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 que vous souhaitez 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
des 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, voir À propos des tables de hachage.
Exemples
Exemple 1 : Format de l’hôte PowerShell
Cet exemple affiche des informations sur le programme hôte pour PowerShell dans une table.
Get-Host | Format-Table -AutoSize
L’applet Get-Host
de commande obtient les objets System.Management.Automation.Internal.Host.InternalHost qui représentent l’hôte. Les objets sont envoyés vers le bas du pipeline et Format-Table
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 Get-Process
de commande obtient des objets qui représentent chaque processus sur l’ordinateur et les envoie au pipeline 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 vers Format-Table
. Le paramètre GroupBy organise les données de 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
Cet exemple affiche des informations sur les processus en cours d’exécution sur l’ordinateur. Les objets sont triés et Format-Table
utilisent une vue pour regrouper les objets par leur 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 Sort-Object
et sont triés en fonction de la propriété StartTime .
Les objets triés sont envoyés vers le bas du pipeline vers 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 chaque heure de début des processus en une date courte, puis regroupe les processus par la date de début.
Le DotNetTypes.format.ps1xml
fichier contient un affichage Priorité pour les processus. Vous pouvez créer vos propres format.ps1xml
fichiers 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 table pour les objets System.IO.DirectoryInfo et System.IO.FileInfo créés par Get-ChildItem
.
L’affichage personnalisé de cet exemple a été créé à partir de l’affichage défini dans le code source PowerShell. Pour plus d’informations sur les vues et le code utilisé pour créer l’affichage 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 dans le pipeline.
Format-Table
utilise le paramètre View pour spécifier la vue personnalisée mygciview qui inclut la colonne CreationTime .
La sortie par défaut Format-Table
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 un tableau portant le nom du processus et le temps d’exécution total des processus du bloc-notes de l’ordinateur local. La durée d'exécution totale est calculée 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 processus du bloc-notes de l’ordinateur local et envoie les objets vers le bas du pipeline. Format-Table
affiche une table avec deux colonnes : ProcessName, une Get-Process
propriété et TotalRunningTime, une propriété calculée.
La propriété TotalRunningTime est spécifiée par une table de hachage avec deux clés, Étiquette 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 Get-Date
commande, 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 du bloc-notes sur l’ordinateur local. Vous pouvez utiliser Get-CimInstance
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 WMI Win32_Process qui décrit tous les processus de l’ordinateur local nommés notepad.exe. Les objets de processus sont stockés dans la $Processes
variable.
Les objets de processus de la $Processes
variable sont envoyés au pipeline Format-Table
vers , 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, Total Running Time, à la clé Label . Le bloc de script de la clé d’expression calcule la durée d’exécution du processus en soustrayant la date de création des processus à partir de la date actuelle. L’applet Get-Date
de commande obtient la date actuelle. La date de création est soustractée de la date actuelle. Le résultat est la valeur du temps d’exécution total.
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 vue détermine la taille et le nombre de colonnes.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 Format-Table
commande et que vous devez résoudre les problèmes des expressions.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Expand
Spécifie le format de l’objet de collection et 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 :
- 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 |
Accepted values: | CoreOnly, EnumOnly, Both |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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, quand un objet d'erreur est écrit dans les flux d'erreur ou d'affichage, seules certaines informations sur l'erreur s'affichent.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 avant d’utiliser Sort-Object
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 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HideTableHeaders
Omet les en-têtes de colonne de la table.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Spécifie les objets à mettre en forme. Entrez une variable contenant les objets, ou tapez une commande ou une expression qui obtient ces objets.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Property
Spécifie les propriétés d'objet qui apparaissent dans l''affichage et l'ordre dans lequel elles 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, seuls les en-têtes PropertyA et PropertyB s’affichent.
Le paramètre Property est facultatif. Vous ne pouvez pas utiliser les paramètres Propriété et Affichage 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
,Center
ouRight
Pour plus d’informations, consultez about_Calculated_Properties.
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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
pagination avec un lecteur d’écran.
Ce paramètre a été ajouté dans PowerShell 6.2.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 Format-Table
commande et que vous devez résoudre les problèmes des expressions.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
À compter de PowerShell 6, les vues par défaut sont définies dans le code source PowerShell C#
. Les *.format.ps1xml
fichiers 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 une vue personnalisée pour la table. 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 affichages alternatifs et personnalisés pour le paramètre View doivent utiliser le format de table, sinon, Format-Table
échoue. Si l’affichage de remplacement est une liste, utilisez l’applet Format-List
de commande. Si l’affichage alternatif n’est pas une liste ou une table, utilisez l’applet de Format-Custom
commande.
Vous ne pouvez pas utiliser les paramètres Propriété et Affichage dans la même commande.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wrap
Affiche le texte qui dépasse de la largeur de colonne sur la ligne suivante. Par défaut, le texte qui dépasse de la largeur de colonne est tronqué.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entrées
Vous pouvez envoyer n’importe quel objet vers le bas du pipeline vers Format-Table
.
Sorties
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
retourne des objets de format qui représentent le tableau.