Trie les objets par les valeurs de propriété.

Syntaxe

Sort-Object [[-Property] <Object[]>] [-CaseSensitive] [-Culture <string>] [-Descending] [-InputObject <psobject>] [-Unique] [<CommonParameters>]

Description

L'applet de commande Sort-Object trie les objets en ordre croissant ou décroissant en fonction des valeurs de propriété de l'objet.

Vous pouvez spécifier une seule propriété ou plusieurs propriétés (pour un tri multi-clé), vous pouvez sélectionner un tri respectant, ou non, la casse. Vous pouvez également demander à Sort-Object d'afficher uniquement les objets possédant une valeur unique pour une propriété particulière.

Paramètres

-CaseSensitive

Indique que le tri doit respecter la casse. Par défaut, le tri ne respecte pas la casse.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Culture <string>

Spécifie la configuration culturelle à utiliser lors du tri.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Descending

Trie les objets en ordre décroissant. La valeur par défaut est ordre croissant.

Le paramètre Descending s'applique à toutes les propriétés. Pour trier certaines propriétés par

ordre croissant et d'autres par ordre décroissant, vous devez spécifier leurs valeurs de propriété à l'aide d'une table de hachage. Pour plus de détails, consultez les exemples.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-InputObject <psobject>

Spécifie les objets à trier.

Lorsque vous utilisez le paramètre InputObject pour envoyer une collection d'éléments, Sort-Object reçoit un objet représentant la collection. Étant donné qu'un objet unique ne peut pas être trié, Sort-Object retourne l'ensemble de la collection inchangée.

Pour trier des objets, dirigez-les vers Sort-Object.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue)

Accepter les caractères génériques ?

false

-Property <Object[]>

Spécifie les propriétés à utiliser pour le tri. Les objets sont triés en fonction des valeurs de ces propriétés. Entrez le nom des propriétés. Les caractères génériques sont autorisés.

Si vous spécifiez plusieurs propriétés, les objets sont tout d'abord triés en fonction de la première propriété. Si plusieurs objets ont la même valeur pour la première propriété, ils sont triés en fonction de leur deuxième propriété. Ce processus continue jusqu'à ce qu'il n'y ait plus aucune propriété spécifiée ou aucun groupe d'objets.

Si vous ne spécifiez pas de propriétés, l'applet de commande effectue le tri en fonction des propriétés par défaut du type d'objet.

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 :

-- Expression <chaîne> ou <bloc de script>

-- Ascending <valeur booléenne>

-- Descending <valeur booléenne>

Obligatoire ?

false

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

true

-Unique

Élimine les doublons et retourne seulement les membres uniques de la collection. Vous pouvez utiliser ce paramètre au lieu de l'applet de commande Get-Unique.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.Management.Automation.PSObject

Vous pouvez diriger les objets à trier vers Sort-Object.

Sorties

System.Management.Automation.PSObject

Sort-Object retourne les objets triés.

Remarques

Sort-Object trie les objets en fonction des propriétés que vous spécifiez ou des propriétés de tri par défaut des objets de ce type.

Si un objet ne possède pas l'une des propriétés spécifiées, sa valeur de propriété est interprétée par l'applet de commande comme étant NULL et placée à la fin de l'ordre de tri.

Lors du tri d'objets, Sort-Object utilise la méthode Compare pour chaque propriété. Si une propriété n'implémente pas IComparable, l'applet de commande convertit sa valeur en une chaîne et utilise la méthode Compare pour System.String.

L'applet de commande Sort-Object trie les objets en ordre croissant ou décroissant en fonction des valeurs de propriété de l'objet.

Si vous effectuez le tri en fonction d'une propriété dont la valeur est une énumération, Sort-Object trie les valeurs d'énumération par ordre numérique, et ne trie pas les noms des membres de l'énumération. Par exemple, si vous triez des services en fonction de leur état, les services possédant l'état « Stopped » apparaissent avant les services ayant l'état « Running », car la valeur de Status est une énumération ServiceControllerStatus, dans laquelle « Stopped » a la valeur 1 et « Running » la valeur 4.

Exemple 1

C:\PS>get-childitem | sort-object 

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         9/13/2005   4:24 PM          0 0
-a---          9/6/2005   4:19 PM         12 a.csv
-a---         9/21/2005   3:49 PM        529 a.Ps
-a---         8/22/2005   4:14 PM         22 a.pl
-a---         9/27/2005  10:33 AM         24 a.txt
-a---         9/15/2005  10:31 AM        398 a.vbs
-a---         7/21/2005  12:39 PM      37066 a.xml
-a---         8/28/2005  11:30 PM       5412 a.xslt
-a---        10/25/2005   1:59 PM        125 AdamTravel.txt
-a---         7/21/2005   9:49 AM         59 add2Num.Ps
-a---         8/29/2005   5:42 PM       7111 add-content.xml
-a---         9/21/2005  12:46 PM       8771 aliens.Ps
-a---         8/10/2005   2:10 PM        798 array.xml
-a---          8/4/2004   5:00 AM        110 AUTORUN.INF
-a---          9/6/2005   4:20 PM        245 b.csv
...

Description
-----------
Cette commande trie les sous-répertoires et fichiers du répertoire actif. Étant donné qu'aucune propriété n'est spécifiée, les fichiers et répertoires sont triés par ordre alphabétique croissant en fonction de leur propriété de tri par défaut, Name.






Exemple 2

C:\PS>get-childitem | sort-object -property length 

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         12/3/2006   5:35 PM          2 pref.txt
-a---          9/6/2006   3:33 PM         15 count.txt
-a---         7/26/2006  10:01 AM         30 filenoext
-a---         8/18/2006   9:02 AM         52 temp.ps1
-a---         8/18/2006   9:02 AM         52 temp.msh
-a---          9/6/2006   3:33 PM         56 fivewords.txt
-a---         7/26/2006   9:28 AM         80 date.csv
-a---         7/29/2006   7:15 PM         84 test2.txt
-a---         7/29/2006   7:15 PM         84 test.ps1

Description
-----------
Cette commande affiche les fichiers dans le répertoire actif en ordre croissant par longueur de fichier.






Exemple 3

C:\PS>get-process | sort-object -property WS | select-object -last 5 

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   1105      25    44236      18932   197    93.81   2032 iexplore
   2526      66    37668      36836   221   393.27    868 svchost
    974      19    22844      45928   371    88.39   3952 WINWORD
   1371      22    42192      61872   323    75.75   1584 INFOPATH
   2145      58    93088      70680   619   396.69   3908 OUTLOOK

Description
-----------
Cette commande affiche les cinq processus de l'ordinateur générant la plus grande utilisation de mémoire en fonction de la taille de leurs plages de travail. 

Elle utilise l'applet de commande Get-Process pour obtenir une liste de processus. Elle utilise un opérateur de pipeline (|) pour envoyer les résultats à l'applet de commande Sort-Object, qui trie les objets dans l'ordre des plages de travail. 

Un autre opérateur de pipeline envoie les résultats à l'applet de commande Select-Object, qui affiche uniquement les cinq derniers éléments de la liste.






Exemple 4

C:\PS>get-history | sort-object -descending 

Id CommandLine
-- -----------
51 get-history | sort -descending
50 get-history | sort -descending
49 get-history | sort -descending
48 get-history | sort -descending
47 get-history | sort -descending
46 get-history | sort -descending
45 get-history | sort -descending
44 cd $pshome
43 get-childitem | sort-object
42 gci *.txt

Description
-----------
Cette commande trie les objets HistoryInfo à l'aide de la propriété Id comme clé par défaut.






Exemple 5

C:\PS>C:\PS> get-service | sort-object -property `
@{Expression="Status";Descending=$true}, `
@{Expression="DisplayName";Descending=$false} 

Status   Name               DisplayName
------   ----               -----------
Running  ALG                Application Layer Gateway Service
Running  Ati HotKey Poller  Ati HotKey Poller
Running  wuauserv           Automatic Updates
Running  BITS               Background Intelligent Transfer Ser...
Running  Client for NFS     Client for NFS
...
Stopped  clr_optimizatio... .NET Runtime Optimization Service v...
Stopped  Alerter            Alerter
Stopped  AppMgmt            Application Management
Stopped  aspnet_state       ASP.NET State Service
Stopped  ATI Smart          ATI Smart
Stopped  ClipSrv            ClipBook

Description
-----------
Cette commande affiche les services de l'ordinateur par ordre de Status décroissant et ordre de DisplayName croissant.

Elle utilise l'applet de commande Get-Service pour obtenir les services présents sur l'ordinateur. Elle utilise un opérateur de pipeline (|) pour envoyer les services à l'applet de commande Sort-Object.

Pour trier une propriété dans l'ordre croissant et une autre propriété dans l'ordre décroissant, la commande utilise une table de hachage pour la valeur du paramètre Property. La table de hachage utilise une clé Expression pour spécifier le nom de propriété et une clé Ascending ou Descending pour spécifier l'ordre de tri.

L'affichage résultant, qui trie les valeurs Status par ordre décroissant, liste les propriétés possédant la valeur « Running » pour Status avant celles ayant la valeur « Stopped ». En cas de tri dans l'ordre croissant, « Stopped » apparaît avant « Running », car Status est une propriété énumérée dans laquelle la valeur de « Stopped » (1) est inférieure à celle de « Running » (4).






Exemple 6

C:\PS>get-childitem *.txt | sort-object -property @{Expression={$_.LastWriteTime - $_.CreationTime}; Ascending=$false} | Format-Table LastWriteTime, CreationTime 

LastWriteTime                           CreationTime
-------------                           ------------
2/21/2006 10:22:20 AM                   10/3/2005 4:19:40 PM
2/27/2006 8:14:24 AM                    2/23/2006 10:41:08 PM
2/24/2006 1:26:19 PM                    2/23/2006 11:23:36 PM
1/5/2006 12:01:35 PM                    1/5/2006 11:35:30 AM
2/24/2006 9:25:40 AM                    2/24/2006 9:22:24 AM
2/24/2006 9:40:01 AM                    2/24/2006 9:39:41 AM
2/21/2006 10:21:30 AM                   2/21/2006 10:21:30 AM

Description
-----------
Cette commande trie des fichiers texte en ordre décroissant selon l'intervalle de temps entre CreationTime et LastWriteTime.






Exemple 7

C:\PS>get-content servers.txt

localhost
test01
server01
server02
localhost
server01

C:\PS> get-content servers.txt | sort-object -unique
localhost
server01
server02
test01

Description
-----------
Ces commandes trient le nom de serveurs d'un fichier texte. La deuxième commande utilise l'applet de commande Sort-Object avec le paramètre Unique pour retourner une liste triée sans doublons.






Voir aussi




Table des matières