|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление старых файлов/папок если их кол-во больше n |
|
CMD/BAT - [решено] Удаление старых файлов/папок если их кол-во больше n
|
Новый участник Сообщения: 13 |
Профиль | Отправить PM | Цитировать Добрый день!
Помогите со скриптом, который будет сканировать нужную папку (например: C:\aaa), и если в нем файлов больше чем n (например 10), то удалить самый старый файл. И тоже самое нужно для папок. Очень надеюсь на вашу помощь. |
|
Отправлено: 14:32, 03-07-2013 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Здравствуйте ещё раз все !
Прошу прощения - были форс мажорные обстоятельства ... Не до скриптов было С батником, увы, так и не заработало Итак: Действительно вот такой вариант РАБОТАЕТ !!! Удаляет файлы через n-дней только ПО ВРЕМЕНИ СОЗДАНИЯ в данной директории, не обращая внимания на дату изменения. $Now = Get-Date $Days = "10" $TargetFolder = "\\srv-zavod\Obmen\" $Extension = "*" $LastWrite = $Now.AddDays(-$Days) $Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where{$_.CreationTime -le "$LastWrite" -and $_.LastWriteTime -le "$LastWrite"} | Sort-Object -Descending {$_.FullName.Split('\').Count},FullName foreach ($File in $Files) { if ($File -ne $NULL -and !$File.PSIsContainer) { write-host "Deleting File $File" -ForegroundColor "Magenta" Remove-Item $File.FullName -Force | out-null } elseif ($File -ne $NULL -and $File.PSIsContainer) { $FolderInfo = get-Childitem $File.FullName | Measure-Object if ($folderInfo.count -eq 0) { write-host "Deleting directory - $File" -foregroundcolor "green" Remove-Item $File.FullName -Force | out-null } } else { Write-Host "No more files to delete!" -foregroundcolor "Green" } } Заранее благодарю за отзывчивость P.S. Вот бы лог куда-нить бы сливался ещё по удаленным файлам ... |
Последний раз редактировалось POV, 13-01-2023 в 13:11. Отправлено: 12:18, 13-01-2023 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата POV:
Тем не менее, он таки учитывает обе даты... в нем будут удалятся и файлы, и каталоги по дате создания и дате изменения старше $Days дней. Цитата POV:
|
||
------- Последний раз редактировалось YuS_2, 13-01-2023 в 13:21. Причина: выведено количество дней в отдельную переменную. Отправлено: 13:09, 13-01-2023 | #32 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать YuS_2
СПАСИБО ОГРОМНОЕ !!!!!! Куда высылать пиво ? Но для теста поставил 1 день и скрипт НЕ УДАЛЯЕТ файлы, а только констатирует. И кстати лог тоже не появляется PS C:\Users\it>> $folder = 'D:\Test\' $fout = '.\log_delete.txt' $n = 1 $olderThan = (get-date).Date.AddDays(-$n) dir $folder -file -rec -force|? {$_.creationtime -lt $olderThan -and $_.lastwritetime -lt $olderThan}| tee $fout|del -force -WhatIf WhatIf: Выполнение операции "Удаление файла" над целевым объектом "D:\Test\batnik.bat". WhatIf: Выполнение операции "Удаление файла" над целевым объектом "D:\Test\README.md". |
Последний раз редактировалось POV, 13-01-2023 в 13:36. Отправлено: 13:29, 13-01-2023 | #33 |
Crazy Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата POV:
С наступающим СНГ! |
|
------- Отправлено: 13:34, 13-01-2023 | #34 |
Crazy Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата POV:
1. Если ставить 1 день, то дата создания И дата изменения файла должна быть старее вчерашней даты. 2. Лог не появляется потому, что нет списка файлов. 3. Хмм, что значит констатирует? Если таки файлы отбор проходят, то: Цитата YuS_2:
|
||
------- Последний раз редактировалось YuS_2, 13-01-2023 в 14:42. Отправлено: 14:24, 13-01-2023 | #35 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать YuS_2,
Цитата YuS_2:
И лог тоже появился! Ещё раз ВСЕМ ОГРОМНОЕ СПАСИБО !!! |
|
Отправлено: 08:34, 14-01-2023 | #36 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Кол-во файлов в папке. | Balancer | Microsoft Windows 7 | 11 | 21-10-2012 20:07 | |
CMD/BAT - Удаление старых файлов по имени файлов | Bиктор | Скриптовые языки администрирования Windows | 1 | 19-04-2010 03:37 | |
[решено] как получить список, если кол-во строчек не постоянно | Russo | AutoIt | 2 | 18-12-2009 10:41 | |
кол-во файлов в папке | rivera | Microsoft Windows NT/2000/2003 | 3 | 29-06-2006 09:38 | |
максимальное кол-во файлов на Cd-ROMе | Dr Mad | Хочу все знать | 1 | 05-09-2005 06:19 |
|