PowerShell - Trier avec Sort-Object
Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!
Bonjour,
Sort-Object permet de trier et aussi de filtrer les valeurs uniques.
La cmdlet propose des options de trie que vous n’avez peut être pas pris le temps d’explorer.
En voici un récapitulatif :
# Classer les processus par ordre ascendant en fonction de la propriété cpuGet-Process | Sort-Object -Property cpu
# Classer les processus par ordre descendant en fonction de la propriété cpuGet-Process | Sort-Object -Property name -descending
# Classer les processus par ordre descendant en fonction de la propriété name puis par propriété cpu (pour les processus avec le même nom)Get-Process | Sort-Object -Property name, cpu -descending
# Classer les processus par ordre ascendant en fonction de la propriété name puis par propriété cpu (pour les processus avec le même nom) en ordre descendantGet-Process | Sort-Object -Property @{ Expression = "Name"; Descending = $true }, @{ Expression = "DisplayName"; Ascending = $true }
# Trier les objets en fonction du résultat d'un scriptblock (dans l'exemple en fonction de la durée entre la date de création et de dernière modification)Get-ChildItem | Sort-Object -Property @{ Expression = { $_.LastWriteTime - $_.CreationTime }; Descending = $true } | select-object -Property LastWriteTime, CreationTime
# Convertir le type d'objet pour changer le comportement de tri de Sort-Object# Création d'un array contenant des valeurs chaines[string[]]$array = 9,10,9999,88888,789,2$array | Sort-Object# Demander à Sort-Object de trier les objets via un type particulier, [INT] dans mon exemple$array | Sort-Object -Property { [int]$_ }
# Autre exemple avec un type [DateTime]'Aug 16, 2022', 'Feb 1, 1992', 'June 15, 1980' | Sort-Object'Aug 16, 2022', 'Feb 1, 1992', 'June 15, 1980' | Sort-Object -Property { [DateTime]$_ }
# Autre exemple avec un type [version]'11.12.13.14', '234.56.78. 10', '5.5.5.5' | Sort-Object'11.12.13.14', '234.56.78. 10', '5.5.5.5' | Sort-Object -Property { [version]$_ }
# Conserver les valeurs uniques (supprimer les doublons) sans sensibilité à la casse'localhost','LOCALHOST','pc1','pc2','localhost','LOCALHOST' | Sort-Object -Unique
# Conserver les valeurs uniques (supprimer les doublons) avec sensibilité à la casse'localhost','LOCALHOST','pc1','pc2','localhost','LOCALHOST' | Sort-Object -Unique -CaseSensitive
# Ranger de manière aléatoire1..10 | Sort-Object -Property { Get-Random }
# Supprimer les doublons avec sensibilité à la casse$array = 'C', 'A', 'B', 'C', 'c', 'C'$array | Sort-Object -Unique -CaseSensitive
# Supprimer les doublons sans sensibilité à la casse$array = 'C', 'A', 'B', 'C', 'c', 'C'$array | Sort-Object -Unique
# Trier des valeurs dans un ordre voulu (dans l'exemple par nom de couleur, rouge puis vert et enfin bleu)$DemoSort = @( [PSCustomObject]@{ Couleur = 'Rouge'; Valeur = 8 } [PSCustomObject]@{ Couleur = 'Bleu'; Valeur = 9 } [PSCustomObject]@{ Couleur = 'Vert'; Valeur = 10 } [PSCustomObject]@{ Couleur = 'Bleu'; Valeur = 11 } [PSCustomObject]@{ Couleur = 'Vert'; Valeur = 12 })$DemoSort | Sort-Object { switch ($_.Couleur) { 'Rouge' { 1 } 'Vert' { 2 } 'Bleu' { 3 } }}
# Les éléments équivalents sont rangés dans l'ordre d'arrivée (Powershell 7)1..20 | Sort-Object {$_ % 3}1..20 | Sort-Object {$_ % 3} -Stable
# N'afficher que les 6 premiers (Powershell 7, inclus -stable)1..20 | Sort-Object -Top 6
# N'afficher que les 6 derniers (Powershell 7, inclus -stable)1..20 | Sort-Object -bottom 6
Liens en relation
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Tester la connectivité réseau et l'accessibilité aux ports avec PowershellPowershell - Afficher les connections réseau (équivalent de netstat)
Afficher les connections réseau (ports en écoute, connections actives...)Powershell - Tester la résolution de nom (équivalent de nslookup)
Commandes Powershell permettant de tester la résolution de nom (équivalent de nslookup)Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Commandes Powershell permettant d'afficher et de gérer la configuration DNS des interfaces réseauPowershell - Gérer la configuration IP des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier la configuration IP des interfaces réseauPowershell - Gérer l'état et la configuration des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier l'état et la configuration des interfaces réseau (désactiver l'IPv6, activer/désactiver une interface)
Suivez-moi sur
Soutenez-moi
Contenu récent
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Powershell - Afficher les connections réseau (équivalent de netstat)
Powershell - Tester la résolution de nom (équivalent de nslookup)
Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Powershell - Gérer la configuration IP des interfaces réseau
Powershell - Gérer l'état et la configuration des interfaces réseau
Powershell et le left hand side
Powershell - Gérer les disques, les partitions et les volumes
Powershell - Gérer les points de restauration système sous Windows