Переименование файлов именами их директорий
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Переименование файлов именами их директорий Author: johngray PostPosted: Fri Apr 06, 2012 14:23
    —
Столкнулся с проблемой:
Есть общая директория, в ней 5 каталогов, в каждом из которых, по сотне подкаталогов, в которых находятся от 1 до 30 файлов (сканированные изображения) с одинаковыми именами (как сканировали, изначально в каждый каталог, так и осталось - типа, 0001.tif, 0002.tif, 0003.tif)
Проблема состоит в том, что-бы собрать эти сканы в один общий каталог, обработать, а затем вернуть на свои места, в эту структуру каталогов. Для этого, требуется присвоить им уникальные имена, каждому по имени каталога, в котором он сейчас находится, и при нескольких файлах в каталоге - присвоить каждому из них, дополнительно, счетчик, либо оставить его нумерацию в оригинале.

Если сформулировать вопрос более четко - как назвать файл именем каталога автоматически.

Перед тем, как задать вопрос - честно просмотрел весь раздел "Автоматизация" - есть похожие темы, но полной аналогии не нашел.
Возможно, этот вопрос просто оказался слишком элементарным, но я уже, почти сутки, бьюсь над его решением.. Подскажите, хотя-бы направление, в котором стоит искать.. Smile
Приношу извинения, если задал вопрос не в той теме, либо, он действительно, является слишком простым.. Confused
Заранее благодарю за помощь!!!

#2:  Author: CaptainFlintLocation: Москва PostPosted: Fri Apr 06, 2012 15:15
    —
А чем инструмент группового переименования не устраивает? В нём можно и счётчик добавить, и имя родительского каталога, и удалить это всё потом (если при добавлении позаботиться о уникальном разделителе)…

#3:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Apr 06, 2012 15:30
    —
CaptainFlint
Я именно это и хотел сначала предложить. Но подкаталогов-то в этих пяти каталогах у него несколько сотен... Легко, конечно, указать имя родительского каталога, собрав предварительно все файлы вместе в один список в режиме без подкаталогов. Но вот со счётчиком в этом случае что делать? Нумерация-то получится общей по отображаемому списку, а не раздельной по реальным подкаталогам.

#4:  Author: CaptainFlintLocation: Москва PostPosted: Fri Apr 06, 2012 15:57
    —
А какая разница? В самом брутальном варианте задать им имя по маске [4-] с заменой слэшей на какие-нибудь процентики (точнее, любого символа, не встречающегося в целевых именах каталогов и файлов), полученные файлы собрать в один каталог через Ctrl+B, F6, обработать, а потом разбросать их по старым местам, заменив эти процентики обратно на слэши. В таком варианте даже счётчик не понадобится, т.к. уникальность этих длинных имён гарантируется уникальностью полных путей. Но если надо, можно и счётчик добавить, а уничтожить его при обратном переименовании можно будет либо опять же заменой (если дать уникальный разделитель), либо простым урезанием имени с конца (если позаботиться о том, чтобы количество цифр было одинаковым).

#5:  Author: sa PostPosted: Fri Apr 06, 2012 16:24
    —
После Ctrl+B (или Ctrl+Shift+B для группы из 5 выделенных каталогов) вызвать инструмент группового переименования.
Для начального переименования можно использовать маску для имени файла [G]_[P]_[N]
Только вместо _ может понадобиться подобрать что-нибудь уникальное для корректного обратного переименования.
Экспериментировать лучше на "пустышках"!

#6:  Author: johngray PostPosted: Fri Apr 06, 2012 17:32
    —
Друзья, спасибо огромное за помощь - дело, по крайней мере сдвинулось с мертвой точке. Групповое переименование - отличная штука, давно им пользуюсь, но про плагин добавления имени каталога в имя файа узнал только сегодня.. Век живи-век учись..
Может это не идеальный вариант, но работает!!
Обработаю файлы, затем попробую вернуть их на свои места, в каталогах.
Еще раз, спасибо!
С уважением,
johngray

#7:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Apr 06, 2012 17:49
    —
johngray wrote:
но про плагин добавления имени каталога в имя файа узнал только сегодня..

Справедливости ради уточню, что это не плагин. А узнать об этом и других специальных выражениях можно было при желании и гораздо раньше, чем сегодня. Из справки, где все они описаны.

#8:  Author: sa PostPosted: Fri Apr 06, 2012 17:55
    —
johngray wrote:
затем попробую вернуть их на свои места, в каталогах
Тут совет
CaptainFlint wrote:
а потом разбросать их по старым местам, заменив эти процентики обратно на слэши.
будет очень кстати.

#9:  Author: johngray PostPosted: Fri Apr 06, 2012 21:01
    —
Avada wrote:
Справедливости ради уточню, что это не плагин. А узнать об этом и других специальных выражениях можно было при желании и гораздо раньше, чем сегодня. Из справки, где все они описаны.

Спасибо за мудрый совет..
Именно это давно собирался сделать - как следует изучить справку к TC. Но, каждый раз, черт побери, жаль времени - думаешь, что знаешь те моменты, которые тебе нужны от программы.. К своему стыду, должен признать, что знаком с программой с момента перехода на нее с NC, еще в её бытность WC. Very Happy
И давно уже спорю с друзьями по поводу лучшего Shell-менеджера в пользу TC.

#10:  Author: niknikursa PostPosted: Thu May 03, 2012 11:57
    —
а есть ли выход из ситуации, если необходимо переименовать файл по имени каталога, но чтоб файл выглядел следующим образом на примере:
C:\Иванов Иван Иванович 03.05.2012\Р Иванов И.И. 03.05.2012.doc
Сейчас я после создания каталога копирую в него файл «Р фио.doc» затем через групповое переименование по маске ввожу [N1] [P] на выходе файл «Р Иванов Иван Иванович 03.05.2012.doc», а вот сделать маску чтоб файл был вида «Р Иванов И.И. 03.05.2012.doc» не получается. Фамилия может быть разной длинны, так же как и имя, отчество.
Помогите, если это возможно конечно.

#11:  Author: Tol!kLocation: Арзамас PostPosted: Thu May 03, 2012 16:26
    —
напр. найти \s(\D{2,})\s(\D)\D+\s(\D)\D+\s
заменить " $1 $2. $3. " без кавычек с рег.выраж.

#12:  Author: sa PostPosted: Thu May 03, 2012 16:42
    —
niknikursa
Включив Рег. выраж. можно, например, и так:
Маска для имени файла: Р [P]
Маска для расширения: [E]
Найти: ( .*)( .?).*( .?).*( .*)
Заменить на: $1$2.$3.$4

Add
Чтобы убрать пробел между инициалами, выражение для поиска записать так:
( .*)( .?).* (.?).*( .*)


Last edited by sa on Thu May 03, 2012 20:58; edited 1 time in total

#13:  Author: niknikursa PostPosted: Thu May 03, 2012 17:11
    —
Tol!k
sa
Я из ваших ответов вот так сделал: в маске указал Р [P] затем в найти: \s(\D{2,})\s(\D)\D+\s(\D)\D+\s ; а заменить указал: $1 $2.$3.
По ( .*)( .?).*( .?).*( .*) у меня между инициалами пробел ставиться.
и всё получилось!!!!! Так и нужно было!!!! Очень вам благодарен.


Last edited by niknikursa on Thu May 03, 2012 18:15; edited 1 time in total

#14:  Author: sa PostPosted: Thu May 03, 2012 17:40
    —
niknikursa wrote:
не понимаю как это применить

Как обычно, только замену введите без кавычек: $1 $2. $3.пробел
Этот вариант более надёжный: не зависит от количества разделительных пробелов в названии папки.

#15:  Author: niknikursa PostPosted: Thu May 03, 2012 18:27
    —
sa
я примерно за 2011 и 2012 год руками именовал их около 2 456 штук. и это только по этому образцу но есть еще и другие кодировки, но теперь я стал понимать и другие шаблоны создам,
а можно все это в кнопку прописать!? помогите пожалуйста.



Total Commander -> Автоматизация 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