Выделение папок в зависимости от имен вложенных папок
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Общие вопросы

#1: Выделение папок в зависимости от имен вложенных папок Author: neketozLocation: Москва PostPosted: Tue Feb 14, 2017 17:00
    —
Добрый день! Изгуглился весь, но видимо сформулировать запрос правильно не получается.

Есть несколько тысяч папок с разными названиями, но с похожей структурой вложенных папок:

11111/Архив/2016/
11112/Архив/2016/
11113/Архив/2017/
и т.д.

Моя задача перенести все папки (11111, 11112 и т.д.) с /2016/ в отдельное место, все папки с /2017/ - в отдельное и т.д.
Всю голову уже сломал как это исполнить.

Заранее спасибо за помощь

#2:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Feb 14, 2017 17:27
    —
Если идёт речь о переносе, и все папки 2016 переносятся в одну базовую папку, 2017 - в другую и т.д., то может быть проще сделать так:
1. Найти все папки 2016, 2017 и т.д.
2. С помощью инструмента переименования перенести их в нужную папку, используя паттерны [N], [P], [G] для подстановки имени самой папки и её ближайших надпапок. Если целевой путь для каждой папки можно представить этими паттернами, можно сделать это за одну операцию переименования, если нет - то по отдельности переносить сначала 2016, потом 2017 и т.д. Нужно помнить, что объединять одноимённые папки тотал тут не позволяет, разные папки 2016 должны в конечном счёте получать разные имена или помещаться в разные родительские папки.


Last edited by MVV on Tue Feb 14, 2017 17:31; edited 2 times in total

#3:  Author: FlasherLocation: Москва PostPosted: Tue Feb 14, 2017 17:28
    —
neketoz
Пример отдельных мест приведите.
И где в задаче хоть что-то про выделение?

MVV
Боюсь, ты ошибаешься. Там в скобках написано, какие папки нужно переносить.


Last edited by Flasher on Tue Feb 14, 2017 17:30; edited 1 time in total

#4:  Author: neketozLocation: Москва PostPosted: Tue Feb 14, 2017 17:30
    —
Flasher wrote:
Пример отдельных мест приведите.

И где в задаче хоть что-то про выделение?


В идеале выделить в корневой папке все, содержащие в себе папки 2016

/11111/Архив/2016 >>> Архив 2012-2016
/11112/Архив/2015 >>> Архив 2012-2016
/11113/Архив/2013 >>> Архив 2012-2016

/11114/Архив/2017 никуда не переносится и остается в исходной папке

#5:  Author: FlasherLocation: Москва PostPosted: Tue Feb 14, 2017 17:35
    —
Если речь о результатах поиска, то жмётся Num+, вставляется \2016\ с подтверждением.

Почему пишите прямой слеш вместо обратного? Это ftp что-ли?

P.S.: Предложения тут принято писать с точками на конце.

#6:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Feb 14, 2017 17:37
    —
Flasher,
Но если в папках 11111, 11112, ... есть только подпапка Архив с подпапкой с номером года, то перенос нижней подпапки с удалением верхней тоже будет решением задачи.

А если нет, то можно так:
1. Найти все папки 201[2-6] (регуляркой) или 2012 2013 2014 2015 2016 (без регулярки).
2. Скопировать имена в текстовый редактор и удалить часть с \Архив\201x\ из путей.
3. Через буфер обмена загрузить выделение...

#7:  Author: neketozLocation: Москва PostPosted: Tue Feb 14, 2017 17:53
    —
Quote:
Если речь о результатах поиска, то жмётся Num+, вставляется \2016\ с подтверждением.


Нет, речь не о результатах поиска.


Quote:
Почему пишите прямой слеш вместо обратного? Это ftp что-ли?


Прошу прощения, привычка.


Попробую еще раз объяснить что нужно. Есть несколько тысяч папок, с другими папками и файлами внутри.
Исходя из того, архив какого года есть у них внутри, нужно их отсортировать по этому признаку (2012, 2013, 2014, 2015, 2016 или 2017) и иметь возможность переместить.
Переместить необходимо родительские папки (11111, 111112) со всем их содержимым.

#8:  Author: FlasherLocation: Москва PostPosted: Tue Feb 14, 2017 18:07
    —
А зачем их сортировать, если "архив" один и тот же?
neketoz wrote:
/11111/Архив/2016 >>> Архив 2012-2016
/11112/Архив/2015 >>> Архив 2012-2016

Может, всё-таки нужны конкретные диапазоны годов? Например, 2017 сюда уже не вписывается.

#9:  Author: neketozLocation: Москва PostPosted: Tue Feb 14, 2017 18:17
    —
Quote:
Может, всё-таки нужны конкретные диапазоны годов? Например, 2017 сюда уже не вписывается.


Структура такова, что архива 2017 года еще нет, он появится только в начале 2018 года.

Quote:
А зачем их сортировать, если "архив" один и тот же?


Как раз для того, чтобы убрать все папки, не имеющие записей в 2017 году

#10:  Author: FlasherLocation: Москва PostPosted: Tue Feb 14, 2017 18:44
    —
neketoz
Папки 1111x в корне диска расположены?

P.S.: Не стоит такие отступы делать и забывать про точки.

#11:  Author: sa PostPosted: Tue Feb 14, 2017 20:44
    —
neketoz
Можно поиском (Alt+F7) найти нужные папки, вывести их на панель, а затем переместить плагином CopyTree. Он позволяет сохранять иерархию каталогов при копировании или перемещении файлов относительно выбранного уровня.

#12:  Author: FlasherLocation: Москва PostPosted: Tue Feb 14, 2017 20:50
    —
Всё это делается без плагина.

#13:  Author: fundukLocation: Санкт-Петербург PostPosted: Mon Feb 20, 2017 00:46
    —
neketoz
Давно известная проблема тотала состоит в том, что он не позволяет вменяемо выделить папки в зависимости от их содержимого (а также найти их или сформировать поля для колонок).
Были плагины FileInDir и EmptyWDX для работы с папками в зависимости от имён или содержимого файлов внутри них. EmptyWDX по ссылке (но не версия на сайте wincmd.ru) поддерживает любую вложенность файлов. Но конфигурировать строку поиска придётся через инишник:
Code:
[WDXContains]
;x_filter support wildcards and many patterns, separated by pipe |
;up to 20 filters supported
1_filter=2017
1_IsRegexp=0
;0 (default) returns boolean, 1 - string (X)
1_type=0
;fields name (Filter X by default)
1_Name=2017
;(default) .. xxxx Maximum number of folder to be checked in case of "recursive" search using
1_Max=2

Поиск в упоминавшейся здесь структуре папок выдаст искомые папки И папки "Архив" в них, но последние легко фильтруются.

#14:  Author: SEREGA88Location: Воронеж PostPosted: Sun Mar 05, 2017 12:11
    —
Как найти папки по имени вложенного в них файла, с выводом на панель списка папок, используя плагин EmptyWDX 0.0.2?

#15:  Author: FlasherLocation: Москва PostPosted: Sun Mar 05, 2017 12:41
    —
SEREGA88
Лучше обновиться.
Установить:
EmptyWDX.ini wrote:
[WDXContains]
_filter=<имя файла.ext>
_Name=<Название поля>
Выполнить cm_UnloadPlugins.
Начать поиск с выбором поля и булевым "Да".

См. FileMask, там настройка в одну строку, но выбор поля для маски там берётся не из списка "Поле:", а из доп. правого крайнего.
Поле: DirMask; Операция: =; Значение: 1.



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group