View previous topic :: View next topic |
Author |
Message |
Xunya
Joined: 24 Oct 2016 Posts: 2
|
(Separately) Posted: Mon Oct 24, 2016 14:16 Post subject: Переименование папок по именам PSD-файлов в них |
|
|
С TotalCommander я на "вы", потому обычно им не пользуюсь. Но встала весьма непростая (для меня) задача. Может, на этом форуме кто подскажет решение.
Есть несколько сотен папок с бессмысленными названиями (типа: 54fs362dr) в каждой папке по несколько файлов, файлы разные, но обязательно в каждой папке присутствует файл с одним и тем же расширением (*.psd).
Собственно вопрос: можно ли средствами ТК переименовать каждую папку именем в ней находящегося файла psd? Файлы psd в каждой папке имеют разные имена.
Я искала ответ на свой вопрос в инете, даже качала всякие программы Renamer'ы, но такой функции нигде не нашла. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10262 Location: Россия, Саратов
|
(Separately) Posted: Mon Oct 24, 2016 15:30 Post subject: |
|
|
Xunya
Тем с заглавием "Групповое переименование" здесь на разных подфорумах уже, мягко говоря, не одна и не две, о недопустимости их дальнейшегно размножения тут предупреждали неоднократно.
Для начала — замечание за нарушение правил форума и переименование темы в нечто более содержательное. Решение по переносу будет принято по результатам обсуждения.
Если в каждой папке действительно ровно по одному PSD-файлу, можно, например, вывести на панель после поиска по маске все PSD-файлы в заданном массиве папок, скопировать имена этих файлов в буфер, после чего в текстовом редакторе поменять .PSD на <пусто>, а сохранённый файл-список загрузить в инструменте группового переименования теперь уже для собранных в результатах поиска имён папок, отсортированных в том же порядке и в том же количестве, что раньше PSD-файлы. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10262 Location: Россия, Саратов
|
(Separately) Posted: Mon Oct 24, 2016 16:19 Post subject: |
|
|
MVV
Попробовал в XP. Перешёл, открыл, вставил. "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом". _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Xunya
Joined: 24 Oct 2016 Posts: 2
|
(Separately) Posted: Mon Oct 24, 2016 16:35 Post subject: |
|
|
Извините пожалуйста, Avada, за невольное нарушение правил. Впредь постараюсь быть внимательнее.
Спасибо за приведенные способы, я решила попробовать тот, что быстрее, вставила код в консоль и все получилось! Больше спасибо, MVV!!! Все получилось!!!! И все так быстро решилось, одной лишь строчкой, а я ведь мучилась с этой проблемой так долго!
Несколько папок не переименовалось, система не дала их переименовать в виду того, что другая папка уже имела это имя (оказалось, что некоторые psd имели одинаковое имя), но таких папок было меньше десяти, вручную быстро доделала. Все получилось наилучшим образом! И так быстро! Спасибо!!!! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Oct 24, 2016 23:11 Post subject: |
|
|
Вообще не пойму, зачем консоль открывать, если можно %comspec% /c спереди дописать и вызывать хоть из кнопки, хоть из комстроки TC? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 25, 2016 00:46 Post subject: |
|
|
MVV
Интересно, как вызов консоли у тебя вдруг из этого заклинания выпал? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 25, 2016 02:51 Post subject: |
|
|
В комстроке, а не консоли. Можно и так. И это уже всяко не меню "Команды". _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2571
|
(Separately) Posted: Tue Oct 25, 2016 11:43 Post subject: |
|
|
Flasher wrote: | вызов консоли ... из этого заклинания выпал |
Надо же что-то и для TC оставить .
MVV
Хорошо, что задача решена, но
1) на XP у меня , как и у Avada, почему-то строка не работает,
2) рекурсия, наверное, не предусмотрена (то есть в текущем каталоге переименуются только подпапки первого уровня)? |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Tue Oct 25, 2016 13:31 Post subject: |
|
|
В этом варианте рекурсия не поддерживается - но она и не запрашивалась.
А на XP и правда не работает. Возможно, команда for читает файлы из директории в процессе обработки, а не предварительно.
На XP у меня работает такой вариант (заодно с рекурсией):
Code: | for /f "delims=" %f in ('dir /s /b *.psd') do @ren "%~pf" "%~nf" |
Или то же самое с usebackq (я всегда пишу usebackq, т.к. так нет проблем с прямым перечислением имён файлов в кавычках):
Code: | for /f "usebackq delims=" %f in (`dir /s /b *.psd`) do @ren "%~pf" "%~nf" |
Но нужно иметь в виду, что если PSD есть и в папке, и в подпапке, то подпапка скорее всего не переименуется, т.к. верхняя папка будет переименована ранее. Впрочем, повторный вызов команды переименует уже вложенную папку.
Ещё есть вариант сначала выдать список путей файлов во временный файл и потом второй командой пройтись по нему. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2571
|
(Separately) Posted: Tue Oct 25, 2016 14:38 Post subject: |
|
|
MVV wrote: | но она и не запрашивалась | Но она (рекурсия) и не отрицалась.
MVV wrote: | работает такой вариант (заодно с рекурсией) | Теперь тоже работает, но, как верно замечено, без рекурсии, если PSD есть и в папке, и в подпапке. Потребуется некоторое число повторных вызовов, зависящее от глубины иерархии. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Oct 25, 2016 15:05 Post subject: |
|
|
Повторы - это плохо. Логичней было бы смотреть сразу в каждый переименованный каталог или начинать от дальней глубины до корневой, т.е. в обратном направлении. Но для таких штук уже нормальный скрипт нужен. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Tue Oct 25, 2016 18:45 Post subject: |
|
|
sa wrote: | Теперь тоже работает, но, как верно замечено, без рекурсии |
Всё же рекурсия есть - вложенные папки в принципе обрабатываются, и повторный запуск не понадобится, если во вложенных друг в друга папках нет PSD-файлов.
А чтобы избежать повторных запусков, надо придумать, как обработать список в обратном порядке. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
|