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