Удалите старые файлы из большой папки с PowerShell - PullRequest
0 голосов
/ 14 марта 2019

У меня очень большая папка (содержит подпапки на нескольких уровнях, всего миллионы файлов). Я хочу удалить только файлы старше X дней (например, 10 дней).

Мой скрипт ниже работает нормально для папки с тысячами файлов, но не работает для этой большой папки. Есть идеи, чтобы оптимизировать это? Спасибо!

$tmpList = Get-ChildItem -Path $sourceFolder -Recurse
$fileObjects = $tmpList `
        | Where-Object { !$_.PSIsContainer -and ($_.LastWriteTime -le $maxDateToProcess) } `
        | Sort-Object -Property "LastWriteTime" -Descending
$allFiles = $fileObjects | Select -ExpandProperty "FullName"
Remove-Item -Path $allFiles

1 Ответ

0 голосов
/ 14 марта 2019

Введите следующую команду, чтобы удалить файлы, которые не были изменены за последние 30 дней, и нажмите Enter:

Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item
...