powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Windows [игнор отключен] [закрыт для гостей] / Powershell удалить самые старые файлы в папке и подпапках
2 сообщений из 2, страница 1 из 1
Powershell удалить самые старые файлы в папке и подпапках
    #39855987
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, поделитесь скриптом который находит в папке с:\backup и во всех вложенных папуак самые старые файлы и удаляет их пока обьем папки не станет равный 500 мб
...
Рейтинг: 0 / 0
Powershell удалить самые старые файлы в папке и подпапках
    #39856062
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sfsf,

по простому алгоритм будет:
1) все файлы с сортировкой по дате (изменения?) в убывающем порядке (обратно во времени) - в массив-переменную
2) нарастающий итог пока не достигнет нужного размера
3) всё что в нужных пределах - оставить, остальное удалить.
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[String]$p='C:\backup' # Path
[Int]$c=30000000 # Size limit bytes
cls;[Array]$a=@();[Int]$d=0
foreach($x in
Get-ChildItem -Path $p -Recurse `
| where-object {$_.DirectoryName.Length -gt 1} `
| Sort-Object -Property @{Expression={$_.LastWriteTime};Ascending=$false},Length
){$a+=,@($x.FullName;$x.Length)}
foreach($x in $a){
$d=$d+$x[1]
if($d -le $c){write-output('leaving '+$x[0])}
else{write-output('dropping '+$x[0]);Remove-Item -Path $x[0]}
}
Remove-Variable * -ea 0;$Error.Clear()


варианты:
А) в каком порядке сортировать файлы с одинаковым временем/датой? (приоритет на удаление) ?
Б) каких файлов больше, которых удалять или которые оставлять
В) можно добавить обработку ошибок и доп проверки, выход из цикла, отчёт и т.д. (напр. неудаляемый файл из-за lock)
Г) как насчёт удаления пустых директорий
ну и т.д. кучу всего можно добавить..
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Powershell удалить самые старые файлы в папке и подпапках
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]