2016-01-21 98 views
0

獨特最近的文件在我的文件夾testtemp,我有這個文件如何排序使用PowerShell

PS C:\scripts\testtemp> Get-ChildItem | select name,lastwritetime 

Name              LastWriteTime 
----              ------------- 
AABASSI.TMC049913.mapdrives.txt        27/02/2015 11:01:11 
AABASSI.TMC049916.mapdrives.txt        02/03/2015 14:29:31 
AABASSI.TMC050020.mapdrives.txt        26/11/2014 18:08:48 
aabassi.TMS064845.mapdrives.txt        06/03/2015 14:14:50 
aaboud.DLECLERCQPC.mapdrives.txt       03/04/2015 09:02:03 
aaboud.FHP030221.mapdrives.txt        30/12/2014 15:05:04 
aaboud.FHP045846.mapdrives.txt        18/11/2014 10:15:05 
Aaccus.FHP047416.mapdrives.txt        25/07/2014 08:16:19 
AADRIENVASSE.PHP049659.mapdrives.txt      02/10/2015 14:18:15 
AADRIENVASSE.RBXXAMET10.mapdrives.txt      06/08/2015 10:33:33 
aagostini.FHP047082.mapdrives.txt       05/03/2015 13:38:07 
aagricole.PHP053341.mapdrives.txt       30/03/2015 15:09:03 
aagricole.TMS064745.mapdrives.txt       25/03/2015 12:32:06 
aaiad.PHP053346.mapdrives.txt        09/06/2015 09:18:58 
aaissaoui.FHP029908.mapdrives.txt       28/08/2014 14:41:09 
aaissaoui.FHP030685.mapdrives.txt       15/11/2014 18:27:55 
aaissaoui.FHP048791.mapdrives.txt       12/09/2014 10:22:19 
aaissaoui.FHP048963.mapdrives.txt       06/11/2014 09:55:00 

我只是想只得到最近的文件每次登錄(用於爲例AABASSi是登錄)

如果我嘗試排序對象lastwritetime降序和排序對象屬性名稱獨特,有一個問題,因爲例如,AAISSAOUI 28/08/2014 14:41:09是不是最新文件:

Get-ChildItem | select @{l="name";e={($_.name.split(".")[0]).ToUpper()}},lastwritetime | Sort-Object lastwritetime -Descending | Sort-Object -Property name -Unique 

name              LastWriteTime 
----              ------------- 
AABASSI              26/11/2014 18:08:48 
AABOUD              30/12/2014 15:05:04 
AACCUS              25/07/2014 08:16:19 
AADRIENVASSE            02/10/2015 14:18:15 
AAGOSTINI             05/03/2015 13:38:07 
AAGRICOLE             25/03/2015 12:32:06 
AAIAD              09/06/2015 09:18:58 
AAISSAOUI             28/08/2014 14:41:09 

對於我的問題,它是一個簡單的解決方案嗎?

+2

'目錄|組{$ _ name.split( 「」)[0]} |%{$ _。組|排序lastwritetime -Descending | - 首先選擇1} ' – PetSerAl

+0

簡單而高效!非常感謝 ! – Littlefish

回答

1

您遇到排序問題的原因是,您按照您實際需要的屬性對其進行排序,然後再通過不同的屬性(名稱)對其進行排序。相反,在「。」之前按字符串對對象進行分組,並僅選擇每個組中的最新對象。 @ PetSerAl的方法是偉大的:

Get-ChildItem | Group-Object {$_.Name.Split(".")[0]} | % { 
     $_.Group | Sort-Object LastWriteTime -Descending | Select-Object -First 1 
    }