Страница 1 из 1

Синхронизация - удаление пустых каталогов

Добавлено: Пт янв 19, 2007 09:05
alask1
Здравствуйте.
Есть база дистрибутивов чуть более 60 Гб (около 9 тыс. папок), в нескольких копиях у нескольких человек, все её пополняют и перестраивают. Записываются новые версии прог и стираются старые. Проблема вот в чём: для сравнения двух копий использую синхронизацию каталогов в Totalcmd. С одной стороны, к примеру с левой, старая версия в папке обозванной 1.234.11, с правой стороны новая версия в папке 1.234.22. Выделяю файлы старой версии на левой стороне и выбираю "Удалить слева", вижу сообщение "Вы действительно хотите удалить выбранные файлы/каталоги (5 шт.)?". Жму "Да" - удаляет.... к сожалению только файлы, пустая папка остаётся. И так всякий раз. Пустые папки потом приходится искать и вытирать вручную. :-( Пробовал найти и стереть пустые папки с помощью totalcmd, ни в какую он не ищет пустые папки - только файлы в папках, вот такая вот бодяга уже столько подряд версий. :-( Может знает кто способ решить или обойти проблему?

Добавлено: Пт янв 19, 2007 09:24
Maximus
1. Установи плагин http://wincmd.ru/plugring/dirsizecalc.html
2. Поиск (Alt+F7)
3. Закладка "Плагины"
4. Отметь "Поиск с плагинами"
5. Плагин: dirsizecalc
6. Свойство: Empty
7. Операция: =
8. Значение: Да
9. Начать поиск
Найдёт пустые папки.

Добавлено: Пт янв 19, 2007 12:19
Вахмурка
Найдет-то он найдет, а вот удалит ли?
Читаем здесь, там описано именно удаление одним кликом.

Добавлено: Пт янв 19, 2007 12:42
Maximus
По окончанию поиска - Файлы на панель, выделить нужные папки и удалить.

Добавлено: Пт янв 19, 2007 14:45
alask1
Спасибо Maximus! Хотя бы обходной путь найден. На 50% работы меньше будет.
Ещё бы господин Гислер функциональность синхронизации каталогов подправил бы, тогда я бы в 2 раза щастливее стал. :-)

А вот однокликовому совету г-на Вахмурки сразу следовать не стоит. В некоторых дистрибутивах есть пустые папки и удалять их далеко не всегда безобидно, могут быть проблемы с последующей установкой.

Добавлено: Пт янв 19, 2007 22:09
Вахмурка
В том и преимущество "однокликовых" решений, что они инвариантны. Тут уж приходится выбирать между надежностью и скоростью. Рецепт Maximus очевиден и надежен, но нуден и длителен. В 99% случаев надо стирать ВСЕ пустые папки. А быстрее одного клика (одной горячей клавиши) решение вряд ли существует...

Добавлено: Вт июл 03, 2012 17:56
Лукавый
Maximus
Мне понравился ответ. Определенное время меня меня мучил вопрос, как удалять пустые папки. Пользуюсь синхонизацией, которая оставляет их, хотя галочка «пустые каталоги» стоит. Есть конечно программа ashampoo uninstaller 4 с такой функцией в ней. Просто не хотелось бы лишних программ устанавливать, тем более, что у нее основная функция совсем другая.

Зашет так же на сайт Вахмурки, но не по ссылке (она не работает с ошибкой 404) и нашел код. Но там нужна Xxcopy программа. А ссылки скачивания не нашел. Поэтому остановился на привычном плагине DirSizeCalc, с которым сразу разобрался как пользоваться. Устанавливать ранее их умел. Спасибо. :)

[mod="Avada"]Нарушение п. 8 правил форума. Крупный шрифт убран.[/mod]

Добавлено: Вт июл 03, 2012 19:41
Вахмурка
Зашет так же на сайт Вахмурки, но не по ссылке (она не работает с ошибкой 404)
Если ты про ссылки в подписи, то у меня все работает.
Xxcopy программа. А ссылки скачивания не нашел
Стандартый путь пробовал?

Добавлено: Вт июл 03, 2012 22:11
sa
Лукавый писал(а):Пользуюсь синхонизацией, которая оставляет их, хотя галочка «пустые каталоги» стоит.
Пустые каталоги удаляются только в асимметричном режиме синхронизации, причём исключительно на правой стороне и только при условии отсутствия таких же каталогов слева.
Из справки по синхронизации:
Пустые каталоги
Также будут синхронизироваться и пустые каталоги, а не только файлы:
1. В обычном (симметричном) режиме каталоги, отсутствующие на одной стороне, будут скопированы на другую сторону.
2. В асимметричном режиме каталоги, отсутствующие слева, будут удалены на правой стороне, а отсутствующие справа — скопированы туда слева.

Добавлено: Вт июл 03, 2012 22:44
LonerD
http://rghost.ru/39012676
Утилитка, удаляющая пустые каталоги и подкаталоги.

И скрипт.

Добавлено: Ср июл 04, 2012 14:48
Лукавый
Вахмурка
pprotcmd.narod.ru/Articles.html#XXcopy
Эта ссылка не работает, она не в подписи , а в сообщении. Программу нашел, но там на английском и на 60 дней я так понял срока. Извиняйте, заморачиваться не стал. Потому как въезжать надо будет еще и в юзание. Решил остановиться на более занакомых вариантах.
LonerD
Спасибо за утилиту.
sa
Больше всего ответ пришелся по вкусу. Да, обычно при нажатии F1 не густо там. Но вошел в синхроницацию, и только затем нажал F1. Получил инструкцию. Все разъяснено. Попробовал на эспериментальных файлах и папках. Результат полностью устроил: пустые папки метит на удаление справа, файлы лишние так же. Использую это для бэкапа на внешний жесткий диск. Спасибо :lol: [/quote]

Добавлено: Ср июл 04, 2012 15:08
Вахмурка
2Лукавый
В статье сказано:
xxcopy.exe %1 /rmdir /x*.* /yy
Никакой документации, то есть, изучать не требуется.
но там на английском и на 60 дней я так понял срока
freeware-версия Хxcopy отличается от платной некоторыми ограничениями, но я за 4 года работы с программой на эти ограничения натолкнулся лишь однажды и легко их обошел, точнее, обошелся без них
Извиняйте, заморачиваться не стал
Если влезать в программу так глубоко, как она позволяет, то заморочиться действительно можно.
Я считаю, что чем меньше программ, тем лучше. Как PowerPro, так и Xxcopy заменили мне несколько десятков мелких утилит, которыми я пользовался раньше. Связка Total Commander + PowerPro + XXcopy покрывает, таким образом, все потребности в работе с файлами и директориями, не считая множества побочных задач. Чем проще, тем лучше. Я просто попытался приобщить еще одного пользователя к этой удобной системе. Не получилось. Ну что же, в следуюший раз.

Добавлено: Ср июл 04, 2012 15:36
sa
Лукавый писал(а):Использую это для бэкапа на внешний жесткий диск.
Главное, не перепутать лево с право, а ещё лучше создать шаблон синхронизации и вызывать его кнопкой с панели инструментов.

Добавлено: Пн дек 09, 2013 23:26
Tol!k
.cmd

Код: Выделить всё

@echo off &setlocal enableextensions
rem    Удалить пустые папки
set Removed=
for /f "delims=" %%B in ('dir /ad/b/s ^|sort /r') do (
    title "%%B"
    rd "%%B" 2>nul &&set /a Removed+=1
)
if defined Removed set Removed
title Done.
ping -n 3 0.0.0.0 >nul