Nesne sıralama
Görüntülenen verileri düzenleyerek cmdlet'i kullanarak taramayı Sort-Object
kolaylaştırabiliriz.
Sort-Object
sıralamak için bir veya daha fazla özelliğin adını alır ve bu özelliklerin değerlerine göre sıralanmış verileri döndürür.
Temel sıralama
Geçerli dizindeki alt dizinleri ve dosyaları listeleme sorununu göz önünde bulundurun. LastWriteTime ve ardından Ada göre sıralamak istiyorsak, şunu yazarak bunu yapabiliriz:
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
...
Azalan anahtar parametresini belirterek nesneleri ters sırada da sıralayabilirsiniz.
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
Karma tabloları kullanma
Dizideki karma tabloları kullanarak farklı düzenlerdeki farklı özellikleri sıralayabilirsiniz. Her karma tablo, özellik adını dize olarak belirtmek için bir İfade anahtarı ve veya $false
ile sıralama düzenini $true
belirtmek için Artan veya Azalan anahtar kullanır. İfade anahtarı zorunludur. Artan veya Azalan tuşu isteğe bağlıdır.
Aşağıdaki örnek nesneleri azalan LastWriteTime ve artan Ad düzeninde sıralar.
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
...
İfade anahtarına bir betik bloğu da ayarlayabilirsiniz. cmdlet'i çalıştırılırken Sort-Object
betik bloğu yürütülür ve sonuç sıralama için kullanılır.
Aşağıdaki örnek nesneleri CreationTime ile LastWriteTime arasındaki zaman aralığına göre azalan düzende sıralar.
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
...
İpuçları
Özellik parametresi adını aşağıdaki gibi atlayabilirsiniz:
Sort-Object LastWriteTime, Name
Ayrıca, yerleşik diğer adına sort
başvurabilirsinizSort-Object
:
sort LastWriteTime, Name
Sıralama için karma tablolardaki anahtarlar aşağıdaki gibi kısaltılabilir:
Sort-Object @{ e = 'LastWriteTime'; d = $true }, @{ e = 'Name'; a = $true }
Bu örnekte eifadesi İfade, difadesi Azalan, a ise Artan anlamına gelir.
Okunabilirliği geliştirmek için karma tabloları ayrı bir değişkene yerleştirebilirsiniz:
$order = @(
@{ Expression = 'LastWriteTime'; Descending = $true }
@{ Expression = 'Name'; Ascending = $true }
)
Get-ChildItem |
Sort-Object $order |
Format-Table LastWriteTime, Name
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin