Sortiert Objekte nach Eigenschaftenwerten. (Sort-Object)
NAMESort-ObjectÜBERSICHTSortiert Objekte nach Eigenschaftenwerten.SYNTAXSort-Object [[-Property] <Object[]>] [-CaseSensitive] [-Culture <string>] [-Descending] [-InputObject <psobject>] [-Unique] [<CommonParameters>]BESCHREIBUNGDas Cmdlet "Sort-Object" sortiert Objekte in aufsteigender oder absteigender Reihenfolge auf Grundlage der Eigenschaftenwerte des Objekts. Sie können eine einzelne Eigenschaft oder mehrere Eigenschaften (für eine Sortierung nach mehreren Schlüsseln) angeben und eine Sortierung mit Berücksichtigung der Groß-/Kleinschreibung oder ohne Berücksichtigung der Groß-/Kleinschreibung auswählen. Sie können auch festlegen, dass Sort-Object nur die Objekte mit einem eindeutigen Wert für eine bestimmte Eigenschaft anzeigt.PARAMETER-CaseSensitive [<SwitchParameter>] Gibt an, dass bei der Sortierung die Groß-/Kleinschreibung berücksichtigt werden soll. Standardmäßig wird die Groß-/Kleinschreibung bei der Sortierung nicht berücksichtigt. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Culture <string> Gibt die beim Sortieren zu verwendende Kulturkonfiguration an. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Descending [<SwitchParameter>] Sortiert die Objekte in absteigender Reihenfolge. Standardmäßig wird eine aufsteigende Reihenfolge verwendet. Der Descending-Parameter wird auf alle Eigenschaften angewendet. Um die Sortierung nach einigen Eigenschaften in aufsteigender Reihenfolge und nach anderen Eigenschaften in absteigender Reihenfolge auszuführen, müssen Sie ihre Eigenschaftenwerte mit einer Hashtabelle angeben. Weitere Informationen finden Sie in den Beispielen. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -InputObject <psobject> Gibt die zu sortierenden Objekte an. Wenn Sie eine Auflistung von Elementen mithilfe des InputObject-Parameters senden, empfängt Sort-Object ein Objekt, das die Auflistung darstellt. Da ein einzelnes Objekt nicht sortiert werden kann, gibt Sort-Object die gesamte Auflistung unverändert zurück. Um Objekte zu sortieren, übergeben Sie sie über die Pipeline an Sort-Object. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?true (ByValue) Platzhalterzeichen akzeptieren?false -Property <Object[]> Gibt die beim Sortieren zu verwendenden Eigenschaften an. Objekte werden auf Grundlage der Werte dieser Eigenschaften sortiert. Geben Sie die Namen der Eigenschaften ein. Platzhalter sind zulässig. Wenn Sie mehrere Eigenschaften angeben, werden die Objekte zunächst nach der ersten Eigenschaft sortiert. Wenn mehrere Objekte für die erste Eigenschaft denselben Wert aufweisen, werden diese Objekte nach der zweiten Eigenschaft sortiert. Dieser Vorgang wird fortgesetzt, bis keine angegebenen Eigenschaften oder Gruppen von Objekten mehr vorhanden sind. Wenn Sie keine Eigenschaften angeben, sortiert das Cmdlet auf Grundlage von Standardeigenschaften für den Objekttyp. Bei dem Wert des Property-Parameters kann es sich um eine neu berechnete Eigenschaft handeln. Verwenden Sie zum Erstellen einer berechneten Eigenschaft eine Hashtabelle. Gültige Schlüssel sind: - Expression <Zeichenfolge> oder <Skriptblock> - Ascending <boolescher Wert> - Descending <boolescher Wert> Erforderlich? false Position? 1 Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?true -Unique [<SwitchParameter>] Entfernt Duplikate und gibt nur die eindeutigen Elemente der Auflistung zurück. Sie können diesen Parameter statt des Cmdlets "Get-Unique" verwenden. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false <CommonParameters> Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug", "ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable", "OutBuffer" und "OutVariable". Weitere Informationen erhalten Sie mit dem Befehl "get-help about_commonparameters".EINGABENSystem.Management.Automation.PSObject Sie können die zu sortierenden Objekte über die Pipeline an Sort-Object übergeben.AUSGABENSystem.Management.Automation.PSObject Sort-Object gibt die sortierten Objekte zurück.HINWEISESort-Object sortiert Objekte auf Grundlage der von Ihnen angegebenen Eigenschaften oder auf Grundlage der Standardsortiereigenschaften für Objekte dieses Typs. Wenn ein Objekt über eine der angegebenen Eigenschaften nicht verfügt, wird der entsprechende Eigenschaftenwert für dieses Objekt vom Cmdlet als NULL interpretiert und am Ende der Sortierreihenfolge angeordnet. Beim Sortieren von Objekten verwendet Sort-Object die Compare-Methode für jede Eigenschaft. Wenn eine Eigenschaft "IComparable" nicht implementiert, konvertiert das Cmdlet den Eigenschaftenwert in eine Zeichenfolge und verwendet die Compare-Methode für System.String. Das Cmdlet "Sort-Object" sortiert Objekte in aufsteigender oder absteigender Reihenfolge auf Grundlage der Eigenschaftenwerte des Objekts. Wenn Sie nach einer Eigenschaft sortieren, deren Wert eine Aufzählung ist, sortiert Sort-Object die Aufzählungswerte in numerischer Reihenfolge; die Namen der Aufzählungselemente werden nicht sortiert. Wenn Sie z. B. Dienste nach Status sortieren, werden Dienste mit dem Status "Stopped" vor Diensten mit dem Status "Running" angezeigt, da der Wert von "Status" eine ServiceControllerStatus-Auflistung ist, in der "Stopped" den Wert 1 und "Running" den Wert 4 aufweist.Beispiele
BEISPIEL 1C:\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 ... Beschreibung ----------- Mit diesem Befehl werden die Unterverzeichnisse und Dateien im aktuellen Verzeichnis sortiert. Da keine Eigenschaften angegeben sind, werden die Dateien und Verzeichnisse in aufsteigender alphabetischer Reihenfolge nach ihrer Standardsortiereigenschaft "Name" sortiert.BEISPIEL 2C:\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 Beschreibung ----------- Mit diesem Befehl werden die Dateien im aktuellen Verzeichnis in aufsteigender Reihenfolge nach Dateilänge angezeigt.BEISPIEL 3C:\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 Beschreibung ----------- Mit diesem Befehl werden die fünf Prozesse auf dem Computer mit der größten Speicherauslastung auf Grundlage der Größe ihrer Workingsets angezeigt. Der Befehl ruft eine Liste von Prozessen mit dem Cmdlet "Get-Process" ab. Die Ergebnisse werden mithilfe eines Pipelineoperators (|) an das Cmdlet "Sort-Object" gesendet, das die Objekte nach Workingsets sortiert. Mit einem weiteren Pipelineoperator werden die Ergebnisse an Select-Object gesendet, das nur die letzten fünf Elemente in der Liste anzeigt.BEISPIEL 4C:\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 Beschreibung ----------- Mit diesem Befehl werden HistoryInfo-Objekte mit der Id-Eigenschaft als Standardschlüssel sortiert.BEISPIEL 5C:\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 Beschreibung ----------- Mit diesem Befehl werden die Dienste auf dem Computer in absteigender Reihenfolge nach Status und in aufsteigender Reihenfolge nach DisplayName angezeigt. Der Befehl verwendet das Cmdlet "Get-Service", um die Dienste auf dem Computer abzurufen. Die Dienste werden mit einem Pipelineoperator (|) an das Cmdlet "Sort-Object" gesendet. Um eine Eigenschaft in aufsteigender Reihenfolge und eine andere Eigenschaft in absteigender Reihenfolge zu sortieren, verwendet der Befehl als Wert des Property-Parameters eine Hashtabelle. In der Hashtabelle wird der Eigenschaftenname mit dem Schlüssel "Expression" und die Sortierreihenfolge mit dem Schlüssel "Ascending" oder "Descending" angegeben. In der resultierenden Anzeige, in der die Status-Werte in absteigender Reihenfolge sortiert sind, werden die Eigenschaften mit dem Status-Wert "Running" vor den Eigenschaften mit dem Status-Wert "Stopped" aufgeführt. Bei einer Sortierung in aufsteigender Reihenfolge wird "Stopped" vor "Running" angezeigt, weil Status eine Enumerationseigenschaft ist, deren Wert "Stopped" (1) kleiner als ihr Wert "Running" (4) ist.BEISPIEL 6C:\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 Beschreibung ----------- Mit diesem Befehl werden Textdateien in absteigender Reihenfolge nach der Zeitspanne zwischen "CreationTime" und "LastWriteTime" sortiert.BEISPIEL 7C:\PS>get-content servers.txt localhost test01 server01 server02 localhost server01 C:\PS> get-content servers.txt | sort-object -unique localhost server01 server02 test01 Beschreibung ----------- Mit diesen Befehlen werden die Namen von Servern in einer Textdatei sortiert. Im zweiten Befehl wird das Cmdlet "Sort-Object" mit dem Unique-Parameter verwendet, um eine sortierte Liste ohne Duplikate zurückzugeben. VERWANDTE LINKS Online version: http://go.microsoft.com/fwlink/?LinkID=113403 (möglicherweise auf Englisch) Group-Object C:\Windows>powershell get-help Get-Variable -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export