2016-12-01 65 views
4

我想在一個大目錄中搜索最近修改日期的一個或幾個文件。嘗試一些PowerShell代碼,但它不適合我。如何通過上次修改日期按目錄順序獲取N個文件?

Get-ChildItem 'D:\Temp' | Sort-Object LastWriteTime 

我知道我可以使用-Recurse搜索所有目錄。但如何:

  • 限制只是一些文件

  • 順序降序模式

  • 不要列出目錄

感謝您的幫助!

回答

6
  • 限制只是一些文件=>管Select-Object -first 10
  • 順序降序模式=>管Sort-Object LastWriteTime -Descending
  • 不要列出目錄=>管Where-Object { -not $_.PsIsContainer }

所以要將它們結合在一起,這裏是一個例子,它從D:\Temp中讀取所有文件,按LastWriteTime降序排序並僅選擇第一個10:

Get-ChildItem -Path 'D:\Temp' | 
    Where-Object { -not $_.PsIsContainer } | 
    Sort-Object LastWriteTime -Descending | 
    Select-Object -first 10 
+0

感謝馬丁的幫助。我有一個錯誤,說無法找到文件。有其他選擇嗎? – fred

+0

我電腦中的PS版本是2.0 – fred

+0

那可能是因爲你使用的是舊的PowerShell版本。爲了解決這個問題,將第一行替換爲:'Get-ChildItem -Path'D:\ Temp'| Where-Object {-not $ _。PsIsContainer}'。我在你的問題中加入了版本標籤來說明這一點。我也編輯了我的答案。 –

相關問題