Поиск файлов сравнением со списком в текстовом файле

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
Bannndi
Сообщения: 5
Зарегистрирован: Ср дек 14, 2011 13:13

Поиск файлов сравнением со списком в текстовом файле

Сообщение Bannndi »

Добрый день!

Давно уже интересует такой вопрос: есть ли возможность сравнивать имена файлов, находящихся в директории и в текстовом файле?

К примеру, в папке накопилось большое количество файлов, часть из которых более неактуальна. Проверять по параметрам файлов нереально - файлы именно аналогичны по содержимому, но не полностью идентичны.
Единственный правильный источник списка файлов в директории - это внешний файл (в ориг. XLS, но не проблема переделать в текстовый формат)

Может быть, уже существует решение такой проблемы? Кто знает, отзовитесь, пожалуйста! ))
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Bannndi писал(а):файлы именно аналогичны по содержимому, но не полностью идентичны
Это как? Одно другому противоречит. Если речь о текстовом содержимом файлов, где, например, разная кодировка, то - другое дело.

И что должно быть в результате? Выделение фалов, которых нет в списке?
Bannndi
Сообщения: 5
Зарегистрирован: Ср дек 14, 2011 13:13

Сообщение Bannndi »

Flasher
Спасибо за отклик!

Поясняю: есть файлы изображений с уникальными именами файлов. Так со временем происходит, что часть изображений более не актуальна, и от них нужно избавиться. Или эти изображения просто случайно продублированы, но также с разными именами файлов. Поэтому обработчику сравнения не требуется ни открывать файлы, ни сравнивать их атрибуты - все что нужно - это сравнить со списком имен файлов, который во внешнем текстовом файле.

В результате - да, выделение файлов, которых нет в списке (или наоборот, так как можно инвертировать выделение)
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Они лежат в одной папке или разных?

Если одной, то проще простого - cm_LoadSelectionFromFile и выбрать файл со списком файлов.

Если в разных, у которых общая надпапка, можно поиском найти все файлы изображений, передать на панель, а потом упомянутой командой выбрать файл следующего вида (то же, что и в предыдущем варианте, но в конце каждого имени *):

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

имяфайла1.jpg*
имяфайла2.jpg*
имяфайла3.jpg*
Но сработает правильно только в случае, если имена файлов абсолютно уникальные (не повторяются в разных папках).
Последний раз редактировалось MVV Ср дек 14, 2011 18:00, всего редактировалось 5 раз.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Bannndi
DiskDir-подобные плагины http://wincmd.ru/search.php?s=DiskDir
Bannndi
Сообщения: 5
Зарегистрирован: Ср дек 14, 2011 13:13

Сообщение Bannndi »

MVV
Вроде получилось! Спасибо за помощь!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Bannndi
Если лишние действия с диалогами не напрягают, то скрипт (который я уже, м.п., сделал) не нужен?
Последний раз редактировалось Flasher Ср дек 14, 2011 19:33, всего редактировалось 1 раз.
Bannndi
Сообщения: 5
Зарегистрирован: Ср дек 14, 2011 13:13

Сообщение Bannndi »

Flasher
А какие лишние действия-диалоги с командой cm_LoadSelectionFromFile ?

У меня все получилось, действий минимум. Создал текст.файл, выполнил команду, все.)

Если речь идет об планировщике запуска такого скрипта, то необходимости такой пока нет)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Bannndi писал(а):У меня все получилось, действий минимум. Создал текст.файл, выполнил команду, все.)
Открытие диалога, поиск папки с файлом-списком, выбор этого файла, подтверждение + инверсия - это минимум? :?
Bannndi
Сообщения: 5
Зарегистрирован: Ср дек 14, 2011 13:13

Сообщение Bannndi »

Flasher
Да не сложно это, не на столько часто эту задачу надо решать)

Есть еще хорошая команда :
cm_LoadSelectionFromClip - выделяет файлы из буфера

Проверил, тоже работает. Единственное, что не нравится - это копипастить команду из списка команд. Нет ли способа сохранить эту команду в какойто исполняемый файл, чтобы просто кликнуть и получить желаемый результат?

Пока что сделал кнопку на панели инструментов, вроде все устраивает, спасибо за помощь )
Последний раз редактировалось Bannndi Ср дек 14, 2011 18:56, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Bannndi писал(а):Да не сложно это
То, что кому-то несложно - другой вопрос, н то, что это никакой не минимум - факт. К тому же не я писал:
Bannndi писал(а):которых нет в списке (или наоборот, так как можно инвертировать выделение)
Bannndi писал(а):Нет ли способа сохранить эту команду в какойто исполняемый файл, чтобы просто кликнуть и получить желаемый результат?
Так а зачем? Ведь
Bannndi писал(а):не сложно это
Оставлю, пожалуй, себе этот исполняемый файл (скрипт) на память...
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Bannndi
Замечание за нарушение правил форума. Избыточное цитирование из четырёх постов удалено.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Bannndi, кнопку ж можно сделать на тулбаре с командой)) или на хоткей повесить в настройках. Или файл меню отредактировать... Да и в меню избранных каталогов можно тоже команды добавлять.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV
Если трактовать получение желаемого результата как исполнение внутренней команды с предварительным копирование имён из файла, то твои предложения уместны (но это уже, как известно, справочная информация), а если результатом считать выделение без лишних манипуляций, то - нет.
Ответить