Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Скрипт для удаления повторяющихся папок

Ответить
Настройки темы
Любой язык - [решено] Скрипт для удаления повторяющихся папок

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!

Имеется огромное количество мелких папок с файлами. Чтобы файловый сервер вздохнул чуть свободнее хотелось бы его почистить.

Пока мой воспаленный мозг выдал максимум:

@Echo Off

Set FDir="P:\Work\2021\"
Set Maska="*comp*v01.*0000*"

FOR /R %FDir% %%i IN (%Maska%) DO Call :Obrabotka "%%i"
GoTo :EOF

:Obrabotka
Echo %1

Но это поиск фалов, а не каталогов.
Хотелось бы как в примере ниже, но мозгов не хватает.



\\srv\Projects\Work\2021\ #отправная точка

\Productions\Pinery\Citilink\Campaign_2021_TVC_21.06.17\ #далее агентство, клиент, проект. Как правило это 3-5 уровней вложенности

\Graphics\Spots\SP0020\SH0040\Compositions\KorolevA\ #далее структура проекта - графика, ролики, ролик, шот, тип работ, исполнитель. По идее это жесткая структура, но возможны девиации.

\PPCCT_210617_SP0020_SH0040_comp_AK_v01\ #далее папки с секвенциями. Если их больше N версий - оставляем N последних [v06, v05, v04]
\PPCCT_210617_SP0020_SH0040_comp_AK_v02\
\PPCCT_210617_SP0020_SH0040_comp_AK_v03\
\PPCCT_210617_SP0020_SH0040_comp_AK_v04\
\PPCCT_210617_SP0020_SH0040_comp_AK_v05\
\PPCCT_210617_SP0020_SH0040_comp_AK_v06\

искомый объект должен отвечать этим условиям:
- это каталог
- путь соответствует маске
- имя каталога содержит строку '_comp_'
- внутри содержатся .exr файлы

действия с найденными объектами:
-переход к файлу
-удаление объекта

Отправлено: 14:52, 24-05-2022

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Цитата asaut:
\Productions\Pinery\Citilink\Campaign_2021_TVC_21.06.17\ #далее агентство, клиент, проект. Как правило это 3-5 уровней вложенности
\Graphics\Spots\SP0020\SH0040\Compositions\KorolevA\ #далее структура проекта - графика, ролики, ролик, шот, тип работ, исполнитель. По идее это жесткая структура, но возможны девиации.
\PPCCT_210617_SP0020_SH0040_comp_AK_v01\ #далее папки с секвенциями. Если их больше N версий - оставляем N последних [v06, v05, v04] »
Это разные пути внутри основного каталога или это один путь типа
Код: Выделить весь код
\\srv\Projects\Work\2021\Productions\Pinery\Citilink\Campaign_2021_TVC_21.06.17\Graphics\Spots\SP0020\SH0040\Compositions\KorolevA\PPCCT_210617_SP0020_SH0040_comp_AK_v01
?

Цитата asaut:
Если их больше N версий - оставляем N последних [v06, v05, v04] »
Что значит "оставляем"? Более старые удалить не глядя на содержимое? Или старые игнорировать и чистить эти последние?

Цитата asaut:
внутри содержатся .exr файлы »
Только они? А если что-то ещё?

Цитата asaut:
действия с найденными объектами:
-переход к файлу
-удаление объекта »
Что значит "переход к файлу"? Если его удаляем, зачем к нему "переходить"?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 15:22, 24-05-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png структура.png
(8.4 Kb, 2 просмотров)

Цитата DJ Mogarych:
Это разные пути внутри основного каталога или это один путь типа »
Один из путей:
\\srv\Work\2021\BBDO\Lada\SVO_Largus_Niva_OLV_21.08.18\Graphics\Spots\SP0010\SH0010\Compositions\Kul adzhiA\BLSO_210818_SP0010_SH0010_comp_AK_v01\

Цитата DJ Mogarych:
Что значит "оставляем"? Более старые удалить не глядя на содержимое? Или старые игнорировать и чистить эти последние? »
Там бывает несколько версий, и хотелось бы оставить парочку последних

Цитата DJ Mogarych:
Только они? А если что-то ещё? »
Бывает как на скрине. Верхняя папка содержит файлы .mov, а нижняя .exr

Цитата DJ Mogarych:
Что значит "переход к файлу"? Если его удаляем, зачем к нему "переходить"? »
Не уверен что это нужно, но подтверждение удаления лучше вставить

Отправлено: 15:31, 24-05-2022 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Цитата asaut:
Там бывает несколько версий, и хотелось бы оставить парочку последних »
Всё равно непонятно - более старые удалить не глядя?

Хорошо, например, имеем каталоги:
\PPCCT_210617_SP0020_SH0040_comp_AK_v01\ - содержит .exr
\PPCCT_210617_SP0020_SH0040_comp_AK_v02\ - содержит .mov
\PPCCT_210617_SP0020_SH0040_comp_AK_v03\ - содержит .mov и .exr
\PPCCT_210617_SP0020_SH0040_comp_AK_v04\ - содержит .mov
\PPCCT_210617_SP0020_SH0040_comp_AK_v05\ - содержит .exr
\PPCCT_210617_SP0020_SH0040_comp_AK_v06\ - содержит .mov и .exr

Какие каталоги выбрать? Учитывать то, что в каталоге разные файлы + .exr (тогда получается 3,5,6), или выбирать только те, в которых только .exr (тогда остаётся только 1 и 5)?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 15:47, 24-05-2022 | #4


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png структура1.png
(33.2 Kb, 2 просмотров)

Вот так может выглядеть папка в которой нужно удалить помеченные версии.
Смотри скрин.

Отправлено: 15:53, 24-05-2022 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Это было понятно с самого начала. Непонятны критерии, по которым надо папки удалять.
Прочтите внимательно, о чём я спрашиваю.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:00, 24-05-2022 | #6


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Всё равно непонятно - более старые удалить не глядя? »
Для начала необходимо видеть список каталогов, а потом принимать решение.

Цитата DJ Mogarych:
Какие каталоги выбрать? Учитывать то, что в каталоге разные файлы + .exr (тогда получается 3,5,6), или выбирать только те, в которых только .exr (тогда остаётся только 1 и 5)? »
Необходимые нам каталоги в которых содержится .exr

Я не уверен что такого рода функцию можно сделать в среде win. Возможно мои хотелки скорее относятся к языкам программирования где можно задать много переменных.

Идеальная структура на скрине выше.

Отправлено: 16:00, 24-05-2022 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Цитата asaut:
Возможно мои хотелки скорее относятся к языкам программирования где можно задать много переменных. »
В Windows это называется Powershell, рекомендую.

Список полных путей каталогов, где есть файлы .exr:

Powershell:
Код: Выделить весь код
dir "\\srv\Projects\Work\2021" -Recurse -directory |? name -match '_comp_' |% {
    if ($_.EnumerateFiles().extension -eq '.exr') {
        $_.FullName
        ($_.EnumerateFiles().length |measure -Sum).sum / 1mb
        ""
    }
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 24-05-2022 в 16:34. Причина: объём в МБ

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:11, 24-05-2022 | #8


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
dir "\\srv\Projects\Work\2021" -Recurse -directory |? name -match '_comp_' |% {
if ($_.EnumerateFiles().extension -eq '.exr') {
$_.FullName
}
} »
Интересно, а объем каждой папки возможно узнать?

Отправлено: 16:24, 24-05-2022 | #9


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Screenshot.png
(255.0 Kb, 5 просмотров)

Цитата DJ Mogarych:
В Windows это называется Powershell, рекомендую. »
Вообще меня даже это продвинуло очень далеко. Прекрасная структура.

Отправлено: 16:33, 24-05-2022 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Скрипт для удаления повторяющихся папок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Скрипт для удаления старых файлов и папок из определенной папки avfiga Скриптовые языки администрирования Windows 71 07-01-2023 18:50
VBS/WSH/JS - [решено] Скрипт для удаления файлов и папок BKPB Скриптовые языки администрирования Windows 32 04-02-2018 20:14
VBS/WSH/JS - Скрипт удаления папок/подпапок и файлов zhuk09 Скриптовые языки администрирования Windows 4 07-12-2015 12:41
CMD/BAT - [решено] Как переделать скрипт удаления папок, на скрипт удаления файлов ufooo Скриптовые языки администрирования Windows 2 02-06-2015 12:22
VBS/WSH/JS - Скрипт удаления пустых папок + лог того, что было удалено Restly Скриптовые языки администрирования Windows 0 19-04-2012 16:25




 
Переход