Показать полную графическую версию : [решено] Удаление большого количества папок и файлов
finderhd
12-02-2020, 11:19
Доброго времени суток!
Имеется каталог с большим количеством папок, подпапок и файлов.
Структура следующая:
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, как я упомянул выше, т.к. в принципе последние три дня они не критичны.
Подскажите плз, кто сталкивался с подобными задачами, какое лучше решение применить в данном случае?
@file - возвращает имя файла.
а вам надо указать
@path - возвращает полный путь к файлу.
finderhd
12-02-2020, 13:42
@file - возвращает имя файла.
а вам надо указать
@path - возвращает полный путь к файлу. »
Не совсем понятно, что Вы имели в виду? Поставить в конце команды @path вместо @file ?
Попробовал указать, ничего не изменилось.
megaloman
12-02-2020, 15:27
Folder_main\YYYYMMDD\ »
Нужно удалить все старые папки вместе с файлами, не трогая последние три. »Если я правильно понял, надо оставить нетронутыми последние 3 папки, допустим:
Folder_main\20200210\
Folder_main\20200205\
Folder_main\20200203\
А предыдущие:
Folder_main\20200202\
Folder_main\20200201\
Folder_main\20200128\
Folder_main\20191231\
.......
удалить.@Echo Off
cls
Set "BoxIn=Z:\Box_In\Folder_Main"
Set "Mask=2???????"
Set /A Skip=3
FOR /F "usebackq Skip=%Skip% delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:D /O:-N`) Do Call Echo %%Time%% "%BoxIn%\%%f" &Rd /S /Q "%BoxIn%\%%f"
rem pause
Exit /B 0
ИМХО, это максимально быстрый вариант, не думаю, что стОит разбивать этот процесс на части, при такой постановке задачи опускаться до работы с подпапками и удаления файлов не комильфо - преступно медленно.Можете поставить этот скрипт в планировщик и запускать его хоть сто раз в день. Гарантировано останутся три созданные последними папки.
Вставил визуальный контроль процесса, если это не надо - уберите выделенное красным цветом. ОцЕните скорость выполнения - если посчитаете, что всё-таки надо процесс разбить - пишите.
не думаю, что стОит разбивать этот процесс на части, при такой постановке задачи опускаться до работы с подпапками и удаления файлов не комильфо - преступно медленно. »
Да нет, нормально будет, хоть спускаясь рекурсией внутрь по дереву (я бы так и делал — спускался вниз рекурсией, удалял старые файлы, а на возврате из рекурсии вверх проверял каталог на пустоту и, если это так — тогда удалял бы его).
P.S. Первый раз можно и «ручками» удалить :).
megaloman
13-02-2020, 12:11
Iska, в чём смысл? Вижу цель - оставить несколько последних по датам в имени папок. Счюпать каждый файл - никакого смысла.
Если уж очень хочется, то и рекурсия - не оптимум. ИМХО эффективнее сделать dir папок и конвейером на обратную сортировку. Убивать в папке файлы и после удаления файлов удалять папку без /s /q.
Но это по времени не знаю на сколько порядков медленнее, чем удалять сразу старые папки.
Эх, не хватает оценки, сколько тратится времени на удаление каждого дня.
Если принять, что за 10 лет создалось 3600 папок по дням и если каждая папка удаляется 1сек, то это уже 1 час.
Кстати, echo в моём коде наверное может хорошо замедлить процесс.
DJ Mogarych
13-02-2020, 16:33
finderhd, а не хотите отталкиваться от даты создания файла вместо "трёх последних папок"?
megaloman
13-02-2020, 17:42
@Echo Off
cls
Set "BoxIn=Z:\Box_In\Folder_Main"
Set "Mask=2???????"
Set /A Skip=3
Set /A MaxCount=365
FOR /F "usebackq Skip=%Skip% delims=" %%d IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:D /O:-N`) Do Set /A MaxDay=%%~nd &GoTo :Begin
:Begin
Set /A iCount=0
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:D /O:N`) Do (
If %MaxDay% GEQ %%f (
Rd /S /Q "%BoxIn%\%%f"
Call :Counter || GoTo :End
)
)
:End
rem pause
Exit /B 0
:Counter
Set /A iCount+=1
If %iCount% EQU %MaxCount% Exit /B 1
Exit /B 0
Set "BoxIn=Z:\Box_In\Folder_Main" - здесь пропишИте свой путь
Set /A Skip=3 -здесь количество дней, которые нужно оставить
Set /A MaxCount=365 -здесь количество дней (не более), удаляемых за один запуск батника.
Батник можно поместить в планировщик, запускать хоть раз в день, хоть несколько (надо при этом быть уверенным, что предыдущий запуск уже успел отработать).
При указанных параметрах и если задание в планировщике запускать раз в сутки, за 10 дней 10 лет Вы убьете и в последующем будут всегда оставаться три последних дня.
Iska, в чём смысл? »
В большей гибкости. Когда внутри могут оказаться файлы возрастом много младше каталогов, например.
megaloman
13-02-2020, 19:00
Когда внутри могут оказаться файлы возрастом много младше каталогов, например. »Их нет, даже если они существуют. При том количестве файлов если какой-то файл нарушает чем-то порядок хранения - его нет. А если работает автоматизированная система- то их и в принципе быть не должно.
порядок хранения - его нет »
а можно сделать
- создать отдельный логический раздел
- сохранять из этого раздела последние три (> ...) папки/подпапки/файла на рабочий логический раздел
- удалять вышесозданные последние три (> ...) папки/подпапки/файла по прошествии какого-то времени
- форматировать отдельный логический раздел когда накопилось более чем достаточно ну или по желанию
finderhd
14-02-2020, 10:43
Если я правильно понял, надо оставить нетронутыми последние 3 папки, допустим:
Folder_main\20200210\
Folder_main\20200205\
Folder_main\20200203\
А предыдущие:
Folder_main\20200202\
Folder_main\20200201\
Folder_main\20200128\
Folder_main\20191231\ »
Ну да, новые папки создаются в формате YYYYMMDD и нужно удалять все папки, подпапки и файлы внутри подпапок, старше 3-х дней. При этом замечу, что файлы находятся только в подпапках и их иерархия не превышает три каталога, т.е:
YYYYMMDD/Folder1/Subfolder1/file.dat
YYYYMMDD/Folder2/Subfolder2/file.dat
YYYYMMDD/Folder3/Subfolder3/file.dat
и т.д.
У меня есть такой еще скрипт, он работает, но оооочень медленно, так медленно, что использовать его для удаления миллиона папок и файлов, просто бессмысленно. Как на поток поставить, когда уже будет всё удалено - еще норм.
cd D:\Folder_main
forfiles /p "C:\Folder_main" /S /D -2000 /C "cmd /c del /f /a /q @file"
:repeat
for /f "tokens=*" %%i in (' dir /b /s /ad "C:\Folder_main" ') do 2>nul rd /q "%%i" && goto:repeat
а не хотите отталкиваться от даты создания файла вместо "трёх последних папок"? »
Мне без разницы. Главное чтобы скрипт быстро (относительно, так сказать) удалил большое количество папок, подпапок и файлов за почти 10 лет. Я сомневаюсь, что какой либо скрипт управится за 1-2 дня выходных, поэтому и предлагал чистку разбить на несколько дней. В течении буднео дня не хотелось бы запускать такой скрипт, если он будет жрать оперативку или место на диске. Также идеально было бы, чтобы можно было отследить его обработку, что-то вроде результата в конце, сколько было удалено или т.п. но это не критично.
а можно сделать
- создать отдельный логический раздел
- сохранять из этого раздела последние три (> ...) папки/подпапки/файла на рабочий логический раздел
- удалять вышесозданные последние три (> ...) папки/подпапки/файла по прошествии какого-то времени
- форматировать отдельный логический раздел когда накопилось более чем достаточно ну или по желанию »
Этот вариант исключен, т.к. я не являюсь админом физического сервера, более того, у меня нет на это подобных полномочий.
Вот вариант с ограничением количества удаленных папкодней »
Спасибо, попробовал на тестовом сервере, поставил:
Set /A Skip=2000
Set /A MaxCount=2000
выдает ошибку: %f unexpected at this time
Я вот думаю, если просто оставить батник на выходные, справится он с удалением всего, за минусом трех дней? И как проследить что он точно отработал, помимо history в планировщике? Или лучше лишнюю нагрузку не создавать добавлением логирования? Или не заморачиваться, а просто как Вы посоветовали с теми параметрами skip и MaxCount, поставить батник в планировщик на ночь и ждать 10 дней... попутно проверяя его. Либо, увеличить MaxCount скажем на 2000 и поставить в планировщик по выходным. Спешки в этом плане нет, главное чтобы работа батника не отправила сервер в ступор.
upd. Поставил
Set /A Skip=3
Set /A MaxCount=2000
подложил каталоги за 2011 год, и за 2017. Батник их удалил, вместе с файлами. Возможно конечно, что папки только по имени такие, а по дате они свежие. Но по-другому протестить нельзя, сразу это делать на главном серваке не решусь пока.
finderhd
14-02-2020, 11:32
Если принять, что за 10 лет создалось 3600 папок по дням и если каждая папка удаляется 1сек, то это уже 1 час.
Кстати, echo в моём коде наверное может хорошо замедлить процесс. »
Я примерно могу подсказать по количеству.
Первая (главная) папка - одна, её ни в коем случае трогать нельзя.
Следующие папки (подпапки), находятся в главной папке, имеют вид YYYYMMDD т.е. согласно дате создания и их более 2180 (пару другую десятков я ранее удалял руками, но запарился это делать, ибо 10 папок с кучей подпапок и файлов через тотал удалялись в среднем примерно за 5-7 сек. при этом, по диспетчеру сразу видно было как возрастала нагрузка на оперативку). Ну и каждый день каталог пополняется новым количеством папок и файлов.
Далее идут подпапки с разными названиями, и в каждой из них один маленький файл (от нескольких байт, до нескольких кб) с одинаковым названием.
Т.е. например, вот так выглядит один из путей:
D:\Reports\Folder_main\20110101\Folder1\Subfolder1\file.dat
Так вот, этих подпапок (subfolder1), могут быть миллионы. Количество folder1 в каждой папке вида YYYYMMDD 49 штук. А вот подпапок subfolder1 может быть от одной, двух то нескольких сотен. Не поленился и зашел во все 49 папок folder1. Среднее количество в каждой штук 50 подпапок, но попадалась одна папка с тремя сотнями подпапок и штук 7 папок с более с100 подпапок. Т.е. если даже взять по среднему так сказать, 50 подпапок, то получаем порядка 105 тыс. папок в каждой folder1. Получаем: 105000х49=5 млн.145 тысяч папок и соответственно файлов. ) Конечно это не точно и могут быть погрешности как в минус, так и в плюс.
Если попытаться их сосчитать через Свойства, система начинает загибаться через пару минут, ибо сильно отжирается оперативка. Больше я сосчитать их не пытался )
DJ Mogarych
14-02-2020, 12:34
D:\Reports\Folder_main\20110101\Folder1\Subfolder1\file.dat »
Очень запутано всё как-то.
1. Какие три каталога надо оставить? Folder1 или Subfolder1?
2. Каталог YYYYMMDD, если старый, будет удаляться?
3. Если на пункт 2 ответ положительный, то насколько каталог YYYYMMDD должен быть старым для удаления?
через тотал удалялись в среднем примерно за 5-7 сек. при этом, по диспетчеру сразу видно было как возрастала нагрузка на оперативку »
Через графический интерфейс это, естественно, весьма долго и ресурсоёмко, скрипт будет работать в десятки раз быстрее.
megaloman
14-02-2020, 13:33
finderhd, Folder_main\
20200201\
Folder1\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder2\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder3\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder_main\
20200202\
Folder1\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder2\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder3\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder_main\
20200203\
Folder1\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder2\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder3\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
....................................... Папок с датами (выделено красным) за десять лет никак не более 365*10+2=3652
Сколько подпапок, файлов в этих папках скрипту глубоко фиолетово, я рассуждаю только с точки зрения количества красных папок за день Я вот думаю, если просто оставить батник на выходные, справится он с удалением всего, за минусом трех дней? »Понятия не имею. Протестируйте, сколько времени занимает удаление, например, 50 дней. Посчитайте пропорцией, сколько времени займет удаление всего. Ответите на свой вопрос.Set /A Skip=2000
Set /A MaxCount=2000
выдает ошибку: %f unexpected at this time »Естественно, Вы тестировали скрипт на количестве папок менее того (2000) чем хотите оставить. Ранее речь шла о 3. Всегда можно придумать данные, способные одурачить любую программу. :) Сейчас поставил от таких данных защиту.@Echo Off
cls
Set "BoxIn=Z:\Box_In\Folder_Main"
Set "Mask=2???????"
Set /A Skip=3
Set /A MaxCount=50
Echo %Date% %Time% === Begin
Set /A MaxDay=0
FOR /F "usebackq Skip=%Skip% delims=" %%d IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:D /O:-N`) Do Set /A MaxDay=%%~nd &GoTo :Begin
:Begin
Set /A iCount=0
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:D /O:N`) Do (
If %MaxDay% GEQ %%f (
Rd /S /Q "%BoxIn%\%%f"
Call :Counter || GoTo :End
)
)
:End
Echo %Date% %Time% === %MaxCount% folders removed maximum
pause
Exit /B 0
:Counter
Set /A iCount+=1
If %iCount% EQU %MaxCount% Exit /B 1
Exit /B 0
Оцените время и принимайте решение. Если время приемлемое, поставьте MaxCount заведомо больше, чем имеется,например: Set /A MaxCount=5000
Три последних дня (если укажете 3) естественно останутся.
Первый скрипт попроще и отработает быстрее. (http://forum.oszone.net/post-2909269-4.html) Естественно, если не хотите наблюдать за процессом, Call Echo %%Time%% "%BoxIn%\%%f" & можно убрать.
Не думаю, что будет как-то отжираться, как Вы выразились, оперативка. Не знаю, что такое сервер, но, если там Raid, то удаление проделается очень быстро. Основная нагрузка на диск.
Нужно удалить все старые папки вместе с файлами, не трогая последние три. »
три главных последних каталога (YYYYMMDD) »
Ну да, новые папки создаются в формате YYYYMMDD и нужно удалять все папки, подпапки и файлы внутри подпапок, старше 3-х дней. »
Так, вот читаю топик и никакой ясности в задаче не вижу.
finderhd, Вам необходимо собраться с мыслями, откинуть "лишнюю" информацию и четко ответить на вопросы:
1. Удаляются подкаталоги первого уровня вложенности от основного (которые имеют формат YYYYMMDD)?
2. Имеются ли в основном каталоге другие подкаталоги с форматом имени отличным от YYYYMMDD?
3. Дата создания файлов, находящихся в подкаталогах от этих удаляемых каталогов, не имеет значения или имеет?
4. Так к чему относится это: "старше 3-х дней"? К каталогам с форматом YYYYMMDD или к файлам, или к чему-то ещё? Если к каталогам, то остаются три последних или таки младше трех дней от текущей даты?
А пока, предварительный скрипт powershell (с учетом того, что в основном каталоге нет подкаталогов с именами, отличающимися от формата YYYYMMDD):
#requires -v 3.0
$fmain='D:\Reports\Folder_main'
dir $fmain -dir|sort -d|select -skip 3|del -rec -force
- удалены будут все подкаталоги от основного, с форматом имени YYYYMMDD, кроме трех последних, имеющих в наименовании самую "свежую" дату.
finderhd
14-02-2020, 15:09
Очень запутано всё как-то.
1. Какие три каталога надо оставить? Folder1 или Subfolder1?
2. Каталог YYYYMMDD, если старый, будет удаляться?
3. Если на пункт 2 ответ положительный, то насколько каталог YYYYMMDD должен быть старым для удаления? »
Удаляться должны старые каталоги вида YYYYMMDD и вложенные в него подпапки с файлами. За минусом 3-х дней.
Через графический интерфейс это, естественно, весьма долго и ресурсоёмко, скрипт будет работать в десятки раз быстрее. »
Я также скачивал софтинку одну - красиво, наглядно, но жутко долго. Даже пустые папки и подпапки удаляет очень долго.
finderhd
14-02-2020, 15:38
Вот структура каталогов, как я себе их представляю по Вашему изложению »
Folder_Main единственная главная папка, с единственным именем. Естественно, она не изначальная по типу C:\Главная папка, но именно она содержит в себе подпапки которые нужно удалять.
Т.е. иерархия скорее такая:
Folder_main\
20200201\
Folder1\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder2\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder3\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
20200202\
Folder1\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder2\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Folder3\
FolderXXX\1.dat
FolderYYY\1.dat
FolderZZZ\1.dat
Set /A Skip=2000 - здесь я указал 2000 т.к. хотел, чтобы скрипт удалил все папки, которые старше 6 лет примерно. Т.е. 2000/365=5,4 года .
Set /A MaxCount=2000 - вот здесь не понятно, зачем это условие, если есть условие выше. Какое-то противоречие получается.
Set /A Skip=3 -здесь количество дней, которые нужно оставить - вот я и оставил 2000, чтобы учесть момент, что батник будет выполнять долго, если оставить 3 дня. А если за минусом 2000 дней, то батник можно спокойно оставить на работу в выходные.
Не думаю, что будет как-то отжираться, как Вы выразились, оперативка. Не знаю, что такое сервер, но, если там Raid, то удаление проделается очень быстро. Основная нагрузка на диск. »
Хорошо если так, но лишняя нагрузка на диск в течении будних дней недопустима. Вопрос в том, насколько эта нагрузка будет критичной, не повести ли она сервер (под сервером имеется в виду физический сервер типа HP Proliant).
Так, вот читаю топик и никакой ясности в задаче не вижу.
finderhd, Вам необходимо собраться с мыслями, откинуть "лишнюю" информацию и четко ответить на вопросы:
1. Удаляются подкаталоги первого уровня вложенности от основного (которые имеют формат YYYYMMDD)?
2. Имеются ли в основном каталоге другие подкаталоги с форматом имени отличным от YYYYMMDD?
3. Дата создания файлов, находящихся в подкаталогах от этих удаляемых каталогов, не имеет значения или имеет?
4. Так к чему относится это: "старше 3-х дней"? К каталогам с форматом YYYYMMDD или к файлам, или к чему-то ещё? Если к каталогам, то остаются три последних или таки младше трех дней от текущей даты? »
Всё очень просто, с мыслями давно определился, но повторю, если не правильно ранее выразилися.
Решить данную задачу можно двумя, видимыми мне способами:
1. Удалить старые подпапки с файлами частями, за несколько выходных.
2. Удалить за один раз.
Первый вариант предпочтительнее, на случай, "если что-то пойдет не так". Сервер (физически это комп) имеет высокую критичность в течении дня, и до глубокой ночи. На выходных на нем ничего не крутится, поэтому ресурсов на обработку к.л. заданий достаточно.
Второй вариант подойдет только если батник управится за пару выходных. Но учитывая огромное количество подпапок и файлов, узнать сколько это займет, невозможно. Но можно конечно прикинуть, как подсказали megaloman выше.
Теперь отвечу по вашим вопросам:
1. Да
2. Я про структуру папок приводил формат выше. Повторюсь еще раз:
D:\Reports\Folder_main\20110101\Folder1\Subfolder1\file.dat
D:\Reports\Folder_main\20110101\Folder2\Subfolder1\file.dat
Reports - это просто папка на диске С, она чисто для примера. А вот Folder_Main это папка, в которой есть папки вида YYYYMMDD, в которых в свою очередь есть еще много папок, но без файлов, и в каждой из них тоже есть папки, но в них уже лежат файлы типа file.dat В конце каждого дня, за 10 минут до 00:00 в папке Folder_main создается папка вида YYYYMMDD, т.е. с текущей датой, и с подпапками и файлами как показано выше.
3 и 4 пункт совместил:
Дата создания файла всегда соответствует текущему дню. Отличаться по времени могут (т.к. за 10 лет незначительно менялось время их создания), но это не важно. Имеет она значения или нет, не знаю, мне нужно чтобы удалялись старые папки за минусом трех дней. Наверное имеют. Все эти папки и файлы на следующий день превращаются по сути в мусор, который и нужно очищать, чтобы каталог всегда имел вид (на примере последних трех дней):
D:\Reports\Folder_main\20200213\
D:\Reports\Folder_main\20200212\
D:\Reports\Folder_main\20200211\
здесь я попдапки с файлами не стал указывать, т.к. и так ясно, что внутри папок YYYYMMDD они будут лежать. Т.е. заходим в Folder_main и видим, что всегда там три каталога вида YYYYMMDD за вчерашний день, позавчерашний и позапозавчерашний. Всё.
finderhd
14-02-2020, 15:50
Чтобы внести ясность со структурой, сделал в тотале в виде дерева (разбил на две части, т.к. не вмещалось, но суть думаю, будет понятна). В каждой папке subfolder лежит файл files.dat
Его размер может быть разным, но имя во всех Subfolder одинаковое. Но по сути это не имеет значение. Должны только оставаться папки вида YYYYMMDD с вложенными в них папками, подпапками и файлами, за минусом в 3 дня т.е. сегодня это будет так:
20200211
20200212
20200213
а завтра уже так:
20200212
20200213
20200214
и т.д., т.е. папки вида YYYYMMDD только за последние 3 дня.
DJ Mogarych
14-02-2020, 16:06
т.е. папки вида YYYYMMDD только за последние 3 дня. »
Зачем тогда вся эта куча лишней информации про вложенные папки и какие-то файлы?
Ещё раз - есть D:\Reports\Folder_main\, в которой есть вложенные папки. Надо грохнуть все эти вложенные папки со всем содержимым, за исключением тех, которые были созданы за последние 3 дня, верно?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.