|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление большого количества папок и файлов |
|
CMD/BAT - [решено] Удаление большого количества папок и файлов
|
Новый участник Сообщения: 42 |
Профиль | Отправить PM | Цитировать
Доброго времени суток!
Имеется каталог с большим количеством папок, подпапок и файлов. Структура следующая: Folder_main\YYYYMMDD\Folder1\ далее подкаталоги FolderXXX\1.dat FolderYYY\1.dat FolderZZZ\1.dat Folder_main\YYYYMMDD\Folder2\ далее подкаталоги FolderXXX\1.dat FolderYYY\1.dat FolderZZZ\1.dat Folder_main - корневая, главная папка ... и т.д. может доходить до сотней подкаталогов типа FolderXXX, а соответственно и файлов в каждой из подпапок. Каждый файл занимает от нескольких байт, то нескольких килобайт (не более 10kb, где-то). Но их количество (как папок так и соответственно, файлов) очень большое, несколько миллионов. Почти за 10 лет. Каталог ежедневно, в одно определенное время, пополняется по принципу - новая папка - новая подпапка - новый файл. Нужно удалить все старые папки вместе с файлами, не трогая последние три. Пытался сделать это через Forfiles, но команда удаляет только файлы. Пытался добавить rmdir /s /q но бесполезно, выдает в ошибку о том, что путь не найден и типа того. FORFILES /p D:\Folder_main\ /s /m *dat* /d -2000 /c "CMD /c del /Q @FILE" 2000 это я указал, чтобы не сразу весь объем... Думал про вариант с RD, заранее скопировав три главных последних каталога (YYYYMMDD), но т.к. файлов и подпапок очень много, то такой вариант подойдет лишь разово. Да и неизвестно сколько по времени он будет удалять, боюсь, всю память сожрет. А нужно этот процесс поставить на поток, чтобы ежедневно удалял файлы и каталоги за минусом в три дня. Также, не хотелось бы грузить сервер во время удаления, поэтому предполагается удаление такого большого количества файлов и папок(подпапок) частями. Можно конечно просто запустить в планировщик батник в выходные, и за несколько недель почистить, а папки постепенно удалить вручную, через тот же total, или удалить через rd, как я упомянул выше, т.к. в принципе последние три дня они не критичны. Подскажите плз, кто сталкивался с подобными задачами, какое лучше решение применить в данном случае? |
|
Отправлено: 11:19, 12-02-2020 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
Да, всё именно так, как вы сказали. Нужно грохнуть все вложенные папки, чтобы оставились только за последние три дня. Но доп. услорвия про то, что таких файлов и папок очень много, и нужно максимально снизить нагрузку на сервер при выполнении батника - остаются в силе. Файлы, не смотря на то, что небольшие, занимают очень много места, которое может исчисляться десятками гигабайт. PS. С PowerShell вообще не знаком. |
|
Отправлено: 16:14, 14-02-2020 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:24, 14-02-2020 | #22 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
За отсчет будет взята папка за такой год: [20110615]. Все папки вида YYYYMMDD по размеру и количеству подпапок и файлов примерно одинаковые. Количество папок YYYYMMDD примерно 2185 (точно не успел увидеть, т.к. батник уже запустил). Так мы посчитаем среднее значение. По результатам, отпишусь. Итак, запустил Ваш первый батник (вот этот: http://forum.oszone.net/post-2909428-8.html) Параметры поставил такие: Set /A Skip=3 Set /A MaxCount=365 Было каталогов вида YYYYMMDD: 2185, через 5 минут работы батника стало: 1818 Изначальная папка была [20110615], после 5 минут работы батника: [20121123]. Также забыл здесь заметить, что в выходные папки не создаются, только в будние дни, поэтому даты в названиях папок вида YYYYMMDD могут "скакать". Итого получаем, 367 папок вида YYYYMMDD за 5 минут. Очень хороший результат! Так я и не понял, про параметр Set /A MaxCount=365, при условии, что стоит параметр Set /A Skip=3 ) |
|
Последний раз редактировалось finderhd, 14-02-2020 в 17:00. Отправлено: 16:30, 14-02-2020 | #23 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Я бы сделал проще:
|
Отправлено: 17:18, 14-02-2020 | #24 |
Ветеран Сообщения: 2707
|
Профиль | Отправить PM | Цитировать Цитата:
Вам надо оставить 3 папки (дня). Можно, естественно, поставить иное кол-ао папок. Set /A Skip=3 Так как непонятно было, насколько быстро удаляются папки (Вы их собирались удалять чуть ли не месяц), сделал Вам вариант, какое максимальное количество папок за один запуск батник удалит. Я от фонаря поставил 365, то есть год. Set /A MaxCount=365 Можно поставить значение, равное или больше количества имеющихся папок. Тогда батник удалит все, за исключением 3 последних. Судя по Вашему отзыву, надо поставить большое значение, и убить все старье за раз. Батнику глубоко безразлично, когда папки создаются или не создаются, скачут даты или ползают. Останутся 3 последние папки с максимальными значениями даты в имени. Цитата Iska:
|
||
------- Последний раз редактировалось megaloman, 14-02-2020 в 18:08. Отправлено: 17:43, 14-02-2020 | #25 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 17:56, 14-02-2020 | #26 |
Ветеран Сообщения: 2707
|
Профиль | Отправить PM | Цитировать Цитата:
Rem pause Цитата:
|
||
------- Отправлено: 18:04, 14-02-2020 | #27 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Вобщем, ситуация такая - батник запускал руками пару раз и было нормально, но потом после обработки предыдущих, запустил еще один раз и он почти сожрал всю свободную оперативку (как я и опасался). Видимо как-то "накопительно" подействовало. Хотя первые два запуска были безболезненны. Пришлось почистить память через RamMap, а иначе бы сервер упал. Осталось 1080 папок грохнуть и поставить на поток. Вот только планировщик не хочет останавливать батник после обработки, так и висит в состоянии "Runing"
Цитата megaloman:
|
|
Отправлено: 18:39, 14-02-2020 | #28 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 07:52, 15-02-2020 | #29 |
Ветеран Сообщения: 2707
|
Профиль | Отправить PM | Цитировать Iska, У Вас есть соображения по этому поводу?
Цитата finderhd:
|
|
------- Отправлено: 10:23, 15-02-2020 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Проблема с просмотром большого количества файлов в explorer | Pikki-pikki | Microsoft Windows 2000/XP | 8 | 30-05-2021 00:24 | |
Система - [решено] проверка целостности большого количества файлов | daneeall | Программное обеспечение Windows | 7 | 08-02-2013 16:25 | |
Система - Подскажите программу для копирования / перемещения большого количества мелких файлов | kiripanda | Программное обеспечение Windows | 13 | 10-08-2010 21:00 | |
Интерфейс - [решено] Переименование большого количества файлов | 7human7 | Microsoft Windows 2000/XP | 7 | 22-11-2008 09:48 | |
Flash - Проблема копирования большого количества файлов в корневой каталог флешки | SANIOK_AV | Накопители (SSD, HDD, USB Flash) | 2 | 05-09-2008 11:43 |
|