2016-12-01 5 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

Спасибо, Мартин, за вашу помощь. У меня была ошибка, говорящая, что -File не может быть найден. Есть ли альтернативный вариант? – fred

+0

PS версия на моем компьютере 2.0 – fred

+0

Это возможно потому, что вы используете старую версию PowerShell. Чтобы исправить это, замените первую строку: 'Get-ChildItem -Path 'D: \ Temp' | Where-Object {-not $ _. PsIsContainer} '. Я добавил тег версии к вашему вопросу, чтобы уточнить это. Я также отредактировал свой ответ. –

Смежные вопросы