Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Vi kan ordna visade data så att det blir enklare att skanna med hjälp av cmdleten Sort-Object .
Sort-Object tar namnet på en eller flera egenskaper att sortera på och returnerar data sorterade efter värdena för dessa egenskaper.
Grundläggande sortering
Överväg problemet med att lista underkataloger och filer i den aktuella katalogen. Om vi vill sortera efter LastWriteTime och sedan efter Namn kan vi göra det genom att skriva:
Get-ChildItem |
Sort-Object -Property LastWriteTime, Name |
Format-Table -Property LastWriteTime, Name
LastWriteTime Name
------------- ----
11/6/2017 10:10:11 AM .localization-config
11/6/2017 10:10:11 AM .openpublishing.build.ps1
11/6/2017 10:10:11 AM appveyor.yml
11/6/2017 10:10:11 AM LICENSE
11/6/2017 10:10:11 AM LICENSE-CODE
11/6/2017 10:10:11 AM ThirdPartyNotices
11/6/2017 10:10:15 AM tests
6/6/2018 7:58:59 PM CONTRIBUTING.md
6/6/2018 7:58:59 PM README.md
...
Du kan också sortera objekten i omvänd ordning genom att ange parametern Fallande växel.
Get-ChildItem |
Sort-Object -Property LastWriteTime, Name -Descending |
Format-Table -Property LastWriteTime, Name
LastWriteTime Name
------------- ----
12/1/2018 10:13:50 PM reference
12/1/2018 10:13:50 PM dsc
...
6/6/2018 7:58:59 PM README.md
6/6/2018 7:58:59 PM CONTRIBUTING.md
11/6/2017 10:10:15 AM tests
11/6/2017 10:10:11 AM ThirdPartyNotices
11/6/2017 10:10:11 AM LICENSE-CODE
11/6/2017 10:10:11 AM LICENSE
11/6/2017 10:10:11 AM appveyor.yml
11/6/2017 10:10:11 AM .openpublishing.build.ps1
11/6/2017 10:10:11 AM .localization-config
Använda hash-tabeller
Du kan sortera olika egenskaper i olika ordrar med hjälp av hash-tabeller i en matris. Varje hash-tabell använder en uttrycksnyckel för att ange egenskapsnamnet som sträng och en stigande eller fallande nyckel för att ange sorteringsordningen efter $true eller $false. Uttrycksnyckeln är obligatorisk. Stigande eller fallande nyckel är valfri.
I följande exempel sorteras objekt i fallande LastWriteTime-ordning och stigande namnordning .
Get-ChildItem |
Sort-Object -Property @{ Expression = 'LastWriteTime'; Descending = $true },
@{ Expression = 'Name'; Ascending = $true } |
Format-Table -Property LastWriteTime, Name
LastWriteTime Name
------------- ----
12/1/2018 10:13:50 PM dsc
12/1/2018 10:13:50 PM reference
11/29/2018 6:56:01 PM .openpublishing.redirection.json
11/29/2018 6:56:01 PM gallery
11/24/2018 10:33:22 AM developer
11/20/2018 7:22:19 PM .markdownlint.json
...
Du kan också ange en scriptblock till uttrycksnyckeln. När du kör cmdleten Sort-Object körs skriptblocket och resultatet används för sortering.
I följande exempel sorteras objekt i fallande ordning efter tidsintervallet mellan CreationTime och LastWriteTime.
Get-ChildItem |
Sort-Object -Property @{ Exp = { $_.LastWriteTime - $_.CreationTime }; Desc = $true } |
Format-Table -Property LastWriteTime, CreationTime
LastWriteTime CreationTime
------------- ------------
12/1/2018 10:13:50 PM 11/6/2017 10:10:11 AM
12/1/2018 10:13:50 PM 11/6/2017 10:10:11 AM
11/7/2018 6:52:24 PM 11/6/2017 10:10:11 AM
11/7/2018 6:52:24 PM 11/6/2017 10:10:15 AM
11/3/2018 9:58:17 AM 11/6/2017 10:10:11 AM
10/26/2018 4:50:21 PM 11/6/2017 10:10:11 AM
11/17/2018 1:10:57 PM 11/29/2017 5:48:30 PM
11/12/2018 6:29:53 PM 12/7/2017 7:57:07 PM
...
Tips
Du kan utelämna egenskapsparameternamnet enligt följande:
Sort-Object LastWriteTime, Name
Dessutom kan du referera till Sort-Object med dess inbyggda alias: sort
sort LastWriteTime, Name
Nycklarna i hash-tabellerna för sortering kan förkortas enligt följande:
Sort-Object @{ e = 'LastWriteTime'; d = $true }, @{ e = 'Name'; a = $true }
I det här exemplet står e för Expression, d står för Descending och a står för Ascending.
För att förbättra läsbarheten kan du placera hash-tabellerna i en separat variabel:
$order = @(
@{ Expression = 'LastWriteTime'; Descending = $true }
@{ Expression = 'Name'; Ascending = $true }
)
Get-ChildItem |
Sort-Object $order |
Format-Table LastWriteTime, Name