Страница 1 из 2
Переименование файлов именами их директорий
Добавлено: Пт апр 06, 2012 14:23
johngray
Столкнулся с проблемой:
Есть общая директория, в ней 5 каталогов, в каждом из которых, по сотне подкаталогов, в которых находятся от 1 до 30 файлов (сканированные изображения) с одинаковыми именами (как сканировали, изначально в каждый каталог, так и осталось - типа, 0001.tif, 0002.tif, 0003.tif)
Проблема состоит в том, что-бы собрать эти сканы в один общий каталог, обработать, а затем вернуть на свои места, в эту структуру каталогов. Для этого, требуется присвоить им уникальные имена, каждому по имени каталога, в котором он сейчас находится, и при нескольких файлах в каталоге - присвоить каждому из них, дополнительно, счетчик, либо оставить его нумерацию в оригинале.
Если сформулировать вопрос более четко -
как назвать файл именем каталога автоматически.
Перед тем, как задать вопрос - честно просмотрел весь раздел "Автоматизация" - есть похожие темы, но полной аналогии не нашел.
Возможно, этот вопрос просто оказался слишком элементарным, но я уже, почти сутки, бьюсь над его решением.. Подскажите, хотя-бы направление, в котором стоит искать..
Приношу извинения, если задал вопрос не в той теме, либо, он действительно, является слишком простым..
Заранее благодарю за помощь!!!
Добавлено: Пт апр 06, 2012 15:15
CaptainFlint
А чем инструмент группового переименования не устраивает? В нём можно и счётчик добавить, и имя родительского каталога, и удалить это всё потом (если при добавлении позаботиться о уникальном разделителе)…
Добавлено: Пт апр 06, 2012 15:30
Avada
CaptainFlint
Я именно это и хотел сначала предложить. Но подкаталогов-то в этих пяти каталогах у него несколько сотен... Легко, конечно, указать имя родительского каталога, собрав предварительно все файлы вместе в один список в режиме без подкаталогов. Но вот со счётчиком в этом случае что делать? Нумерация-то получится общей по отображаемому списку, а не раздельной по реальным подкаталогам.
Добавлено: Пт апр 06, 2012 15:57
CaptainFlint
А какая разница? В самом брутальном варианте задать им имя по маске [4-] с заменой слэшей на какие-нибудь процентики (точнее, любого символа, не встречающегося в целевых именах каталогов и файлов), полученные файлы собрать в один каталог через Ctrl+B, F6, обработать, а потом разбросать их по старым местам, заменив эти процентики обратно на слэши. В таком варианте даже счётчик не понадобится, т.к. уникальность этих длинных имён гарантируется уникальностью полных путей. Но если надо, можно и счётчик добавить, а уничтожить его при обратном переименовании можно будет либо опять же заменой (если дать уникальный разделитель), либо простым урезанием имени с конца (если позаботиться о том, чтобы количество цифр было одинаковым).
Добавлено: Пт апр 06, 2012 16:24
sa
После Ctrl+B (или Ctrl+Shift+B для группы из 5 выделенных каталогов) вызвать инструмент группового переименования.
Для начального переименования можно использовать маску для имени файла [G]_[P]_[N]
Только вместо _ может понадобиться подобрать что-нибудь уникальное для корректного обратного переименования.
Экспериментировать лучше на "пустышках"!
Добавлено: Пт апр 06, 2012 17:32
johngray
Друзья, спасибо огромное за помощь - дело, по крайней мере сдвинулось с мертвой точке. Групповое переименование - отличная штука, давно им пользуюсь, но про плагин добавления имени каталога в имя файа узнал только сегодня.. Век живи-век учись..
Может это не идеальный вариант, но работает!!
Обработаю файлы, затем попробую вернуть их на свои места, в каталогах.
Еще раз, спасибо!
С уважением,
johngray
Добавлено: Пт апр 06, 2012 17:49
Avada
johngray писал(а):но про плагин добавления имени каталога в имя файа узнал только сегодня..
Справедливости ради уточню, что это не плагин. А узнать об этом и других
специальных выражениях можно было при желании и гораздо раньше, чем сегодня. Из
справки, где все они описаны.
Добавлено: Пт апр 06, 2012 17:55
sa
johngray писал(а):затем попробую вернуть их на свои места, в каталогах
Тут совет
CaptainFlint писал(а):а потом разбросать их по старым местам, заменив эти процентики обратно на слэши.
будет очень кстати.
Добавлено: Пт апр 06, 2012 21:01
johngray
Avada писал(а):Справедливости ради уточню, что это не плагин. А узнать об этом и других
специальных выражениях можно было при желании и гораздо раньше, чем сегодня. Из
справки, где все они описаны.
Спасибо за мудрый совет..
Именно это давно собирался сделать - как следует изучить справку к TC. Но, каждый раз, черт побери, жаль времени - думаешь, что знаешь те моменты, которые тебе нужны от программы.. К своему стыду, должен признать, что знаком с программой с момента перехода на нее с NC, еще в её бытность WC.
И давно уже спорю с друзьями по поводу лучшего Shell-менеджера в пользу TC.
Добавлено: Чт май 03, 2012 11:57
niknikursa
а есть ли выход из ситуации, если необходимо переименовать файл по имени каталога, но чтоб файл выглядел следующим образом на примере:
C:\Иванов Иван Иванович 03.05.2012\Р Иванов И.И. 03.05.2012.doc
Сейчас я после создания каталога копирую в него файл «Р фио.doc» затем через групповое переименование по маске ввожу [N1] [P] на выходе файл «Р Иванов Иван Иванович 03.05.2012.doc», а вот сделать маску чтоб файл был вида «Р Иванов И.И. 03.05.2012.doc» не получается. Фамилия может быть разной длинны, так же как и имя, отчество.
Помогите, если это возможно конечно.
Добавлено: Чт май 03, 2012 16:26
Tol!k
напр. найти \s(\D{2,})\s(\D)\D+\s(\D)\D+\s
заменить " $1 $2. $3. " без кавычек с рег.выраж.
Добавлено: Чт май 03, 2012 16:42
sa
niknikursa
Включив Рег. выраж. можно, например, и так:
Маска для имени файла: Р [P]
Маска для расширения: [E]
Найти: ( .*)( .?).*( .?).*( .*)
Заменить на: $1$2.$3.$4
Add
Чтобы убрать пробел между инициалами, выражение для поиска записать так:
( .*)( .?).* (.?).*( .*)
Добавлено: Чт май 03, 2012 17:11
niknikursa
Tol!k
sa
Я из ваших ответов вот так сделал: в маске указал Р [P] затем в найти: \s(\D{2,})\s(\D)\D+\s(\D)\D+\s ; а заменить указал: $1 $2.$3.
По ( .*)( .?).*( .?).*( .*) у меня между инициалами пробел ставиться.
и всё получилось!!!!! Так и нужно было!!!! Очень вам благодарен.
Добавлено: Чт май 03, 2012 17:40
sa
niknikursa писал(а):не понимаю как это применить
Как обычно, только замену введите без кавычек:
$1 $2. $3.пробел
Этот вариант более надёжный: не зависит от количества разделительных пробелов в названии папки.
Добавлено: Чт май 03, 2012 18:27
niknikursa
sa
я примерно за 2011 и 2012 год руками именовал их около 2 456 штук. и это только по этому образцу но есть еще и другие кодировки, но теперь я стал понимать и другие шаблоны создам,
а можно все это в кнопку прописать!? помогите пожалуйста.