PDA

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


Tend
05.11.2008, 20:34
Есть текстовый список, например:
яблоко
груша
апельсин
банан
...

И есть в папке файлы, количество которых равно количеству строк в текстовом списке.

Нужно, чтобы первый по порядку файл в папке переименовался в первую по порядку строку из текстового списка, второй файл - во вторую строку и т.д.

Ищу наиболее автоматизированный способ для такого переименования.
Может есть специальные программы для такого переименования, но сам не нашел.

DenK2
05.11.2008, 20:53
Total Commander 7 и далее тебе в помощь. Выделяй нужные файлы, нажимай Ctrl + M, далее нажимай на кнопку в самом низу "Поиска и замены", загрузить имена из файла. Если что F1, там в русской справке все описано.
Сходи сюда, здесь всё есть:
http://wincmd.ru/

Tend
05.11.2008, 21:12
DenK2, благодарю! :)
Если кто знает еще способы, обязательно пишите.

deepray
06.11.2008, 13:09
DenK2, где ж ты раньше был! ((
4 дня назад переименовал почти 500!! файлов копипастом, проклял всё на свете....;)
Щас поюзал - всё гуд, работает.. )

Маленькая заковыка: при загрузке файла становится неактивным окошко "расширение". Пришлось в 2 этапа переименовывать: сначала имена поменять, потом расширение прикрутить... Но это мелочи - не руками же! ))
------------------
Спасибо.
------------------

Tend
06.11.2008, 14:07
Кстати, еще вопросик по Тоталу: если выделяемые файлы для переименования отсортированы не так, как они написаны в текстовом файле - как после загрузки файла с новыми именами переназначить некоторые из них?
То есть, например, есть файлы (и они отсортированы по расширению):
2.doc
1.exe
3.txt
И есть текстовый файл:
один.exe
два.doc
три.txt
То после загрузки файла с новыми именами будет следующее:
2.doc -> один.exe
1.exe -> два.doc
3.txt -> три.txt
Как после этого наглядно переназначить некоторым файлам новые имена?

DenK2
06.11.2008, 19:48
Маленькая заковыка: при загрузке файла становится неактивным окошко "расширение". Пришлось в 2 этапа переименовывать: сначала имена поменять, потом расширение прикрутить... Но это мелочи - не руками же! ))
Да, есть такое дело.
В общем сделал переименование с помощью трех программ: OpenOffice Writer, OpenOffice Calc и Total Commander. Способ, конечно, громоздкий, кто сделает короче, прошу поделиться.

1.Копируем в ТС имена всех файлов, вставляем в Writer (или Word).
2.Найти и заменить, ставим регулярные выражения, ищем все расширения, т.е. ".doc|.mp3|.txt", копируем их в буфер.
3.Вставляем полученное: ".txt.txt.txt.mp3.doc"
4.Снова поиск и замена, ищем: "\."
заменяем на: "\n.".
Получаем текст:
.txt
.txt
.txt
.mp3
.doc
5.Вставляем в Calc (или в Excel)в первый столбец слова
один
два
три
четыре
пять
6.Вставляем в Calc во второй столбец слова
.txt
.txt
.txt
.mp3
.doc
7.Копируем это всё и вставляем как простой текст в Writer.
8.Т.к. между именем и расширением вставился символ табуляции, снова ищем:
"\t" (регулярные выражения включены!) и заменяем на "", т.е. пустую строку.
В итоге получися нужный список файлов, дальше в ТС переименовать по списку - дело техники.

sgrey
06.11.2008, 20:40
DenK2, я быстрее программу напишу свою которая будет менять имена всех файлов в папке.......

DenK2
06.11.2008, 20:43
Я не программист, но простенький скрипт на аутоите напишу. И не надо лишних программ.

Tend
06.11.2008, 20:51
DenK2, я быстрее программу напишу свою которая будет менять имена всех файлов в папке.......
sgrey, а мне можешь написать такую программу? :) сколько подобное будет стоить?

DenK2, а что за "аутоит"? этот скрипт сможет делать все, что мне нужно?

sgrey
06.11.2008, 20:58
Я не программист, но простенький скрипт на аутоите напишу. И не надо лишних программ.

ага, надо извращаться непонятно как вместо того чтобы 30 кб экзешник хранить который всё автоматом сделает )

DenK2
06.11.2008, 21:02
Tend, нафига покупать лишнюю прогу, если можно написать скрипт под свои запросы, освоить несложно. Кроме того, если освоишь, можешь автоматизировать многие рутинные действия и сделаешь уинсталл нескольким лишним программам.
http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=17705#1

sgrey
06.11.2008, 21:06
sgrey, а мне можешь написать такую программу? :) сколько подобное будет стоить?

DenK2, а что за "аутоит"? этот скрипт сможет делать все, что мне нужно?

и тебе надо переименовывать сотни файлов именами из списка? )

Добавлено через 2 минуты
Tend, нафига покупать лишнюю прогу, если можно написать скрипт под свои запросы, освоить несложно. Кроме того, если освоишь, можешь автоматизировать многие рутинные действия и сделаешь уинсталл нескольким лишним программам.
http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=17705#1

почему именно покупать? а вдруг я бесплатно напишу :razz:

Dimonsh
06.11.2008, 21:19
Есть такая утилитка http://portablebox.net/2007/12/bulk-rename.html. А про Total Commander не знал, спасибо.

DenK2
06.11.2008, 21:33
Ну, раз пошла такая пьянка, то вот ещё бесплатная утилита (сам не пользовался, надо вникать):

http://whitewind.skysib.com/ru/ff

FileFactory v0.3 beta - плагин для TotalCommander и отдельное приложение, предназначенное для того, что бы делать с файлами всё, что заблагорассудится.
Это включает в себя поиск и замену с регулярными выражениями, переименование файлов и форматирование результатов поиска с помощью простого но мощного скриптового языка, использование WDX плагинов от TotalCommander, составление списка файлов.

Tend
06.11.2008, 21:33
и тебе надо переименовывать сотни файлов именами из списка? )
да, бывает такое...

почему именно покупать? а вдруг я бесплатно напишу
будет супер, если напишешь бесплатно :)

ItarTass
23.03.2010, 10:00
Имеется csv файл вида(2 столбца если в excel открывать):
Мертвец (Dead Man cd2)(1995);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Мертвец(Dead Man)\Dead man(2).avi

Открытый простор (Open Range)(2003);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Открытый простор(Open Range)\Otkritiy.Prostor.(2003.RUS.BDRip.XviD.AC3.-HQ-ViDEO.avi

Великолепная семерка (The Magnificent Seven cd1)(1960);v:\_Кино\Фильмы(по жанрам)\05Вестерны\Великолепная семерка\The Magnificent Seven CD1.avi
разделитель ; но можно и поменять если надо.


и т.д.
Несколько тысяч таких строк.Все файлы лежат в одной директории v:\_Кино\Фильмы(по жанрам)\

Как можно переименовать все файлы из 2 столбца именами из 1 столбца?

Тоталом не получается никак вывести файлы из списка на панель.Обсуждение на форуме тотала(я не знаю можно ли здесь ссылку постить).

То есть нужна утилита которая находит файл по пути v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Открытый простор(Open Range)\Otkritiy.Prostor.(2003.RUS.BDRip.XviD.AC3.-HQ-ViDEO.avi
и переименовывает его в имя из другого столбца Открытый простор (Open Range)(2003)(расширение можно добавить в таблицу, но там правда не все avi)

il72
23.03.2010, 10:07
ItarTass, создать второй? и сделать в нем все что нужно?

deepray
23.03.2010, 13:48
ItarTass, если ты уверен, что порядок Имён (1 столбец) совпадает с порядком расположения самих файлов, то:
1)в excel выдели 1 столбец >> ctrl+c >> создай список1.txt и Вставить - Сохранить.
2)запускаешь Тотал - заходишь в нужную папку - выделяешь файлы - Групповое переименование - в секции "Поиск и замена" клик кнопку (справа от поля "Без изменения") - выбираешь 1 пункт "Load names from file" - находишь список1.txt - Открыть - Выполнить.
--------------
Вроде так... если я правильно понял задачу...

axlwor
23.03.2010, 14:10
ItarTass, Все три файла в одном каталоге
st.cmd
@echo off
cls
for /F "tokens=1,2 delims=;" %%i IN (list.txt) DO myren.cmd "%%i" "%%j"
myren.cmd
@echo off
set my=%2
set my=%my:"=%
set myExt=%my:~-4%
set my=%1
set myName=%my:"=%
ren %2 "%myName%%myExt%"

list.txt
Мертвец (Dead Man cd2)(1995);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Мертвец(Dead Man)\Dead man(2).avi
Открытый простор (Open Range)(2003);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Открытый простор(Open Range)\Otkritiy.Prostor.(2003.RUS.BDRip.XviD.AC3.-HQ-ViDEO.avi

PS. Но я бы проверял с опаской. Гарантий дать не могу

ItarTass
23.03.2010, 15:45
да не. в форуме тотала пришел мудрый Толик и написал(ссылок не даю,мне уже раз дали предупреждение за ссылку на официальный сайт эвереста).

Itar-Tass
Если .csv такой (разделителем д.б. ; )
За пригоршню долларов (Per un pugno di dollari)(1964);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\За пригоршню долларов(Fistful of Dollars, A)\A fistful of dollars cd1(Goblin`s).avi
За пригоршню долларов (Per un pugno di dollari)(1964);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\За пригоршню долларов(Fistful of Dollars, A)\A fistful of dollars cd2(Goblin`s).avi
Мертвец (Dead Man cd1)(1995);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Мертвец(Dead Man)\Dead man(1).avi
Мертвец (Dead Man cd2)(1995);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Мертвец(Dead Man)\Dead man(2).avi
Открытый простор (Open Range)(2003);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Открытый простор(Open Range)\Otkritiy.Prostor.(2003.RUS.BDRip.XviD.AC3.-HQ-ViDEO.avi
Великолепная семерка (The Magnificent Seven cd1)(1960);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Великолепная семерка\The Magnificent Seven CD1.avi
Великолепная семерка (The Magnificent Seven cd1)(1960);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Великолепная семерка\The Magnificent Seven CD2.avi
Меня зовут Троица (Lo chiamavano Trinitа...)(1970);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Меня зовут Троица ((1971)\They Call Me Trinity... .avi
Меня все еще зовут Троица (...continuavano a chiamarlo Trinitа)(1972);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Меня по-прежнему зовут Троица ((1971)\Trinity Is Still My Name.avi
Золото Маккенны (Mackenna's Gold)(1969);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Золото Макенны\V754_Mackenna_s_Gold.avi

Запусти такой .cmd
@echo off &chcp 1251 >nul
setlocal enableextensions
for /f "usebackq tokens=1,2 delims=;" %%f in ("films.csv") do (
echo ren "%%~g" "%%~f%%~xg">> _1.cmd.txt
rem ren "%%~g" "%%~f%%~xg"
)

Изучи получившийся _1.cmd.txt и, если всё правильно, раскомментируй строку ren "%%~g" "%%~f%%~xg" и запусти ещё раз

Понятно,что это уже не тотал - но все просто оказалось.

Добавлено через 2 минуты
ItarTass, Все три файла в одном каталоге
st.cmd
@echo off
cls
for /F "tokens=1,2 delims=;" %%i IN (list.txt) DO myren.cmd "%%i" "%%j"
myren.cmd
@echo off
set my=%2
set my=%my:"=%
set myExt=%my:~-4%
set my=%1
set myName=%my:"=%
ren %2 "%myName%%myExt%"

list.txt
Мертвец (Dead Man cd2)(1995);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Мертвец(Dead Man)\Dead man(2).avi
Открытый простор (Open Range)(2003);v:\_Кино\Фильмы(по жанрам)\05 Вестерны\Открытый простор(Open Range)\Otkritiy.Prostor.(2003.RUS.BDRip.XviD.AC3.-HQ-ViDEO.avi

PS. Но я бы проверял с опаской. Гарантий дать не могу

респект я не проверял в силу того ,что уже дали решение,но спасибо уже за то ,что не отослали в тотал.

ItarTass
23.03.2010, 20:55
ItarTass, если ты уверен, что порядок Имён (1 столбец) совпадает с порядком расположения самих файлов, то:
1)в excel выдели 1 столбец >> ctrl+c >> создай список1.txt и Вставить - Сохранить.
2)запускаешь Тотал - заходишь в нужную папку - выделяешь файлы - Групповое переименование - в секции "Поиск и замена" клик кнопку (справа от поля "Без изменения") - выбираешь 1 пункт "Load names from file" - находишь список1.txt - Открыть - Выполнить.
--------------
Вроде так... если я правильно понял задачу...

Не совпадает.Написано же в главном посте.

skufia
18.01.2011, 14:46
Мой коллега по моей просьбе как-то написал мне скрипт на vbs. Идея в следующем:
Скрипт отложенных файловых операций

Задача
Есть исходный список файлов и путей - c:\source.txt (можно настроить кнопку в Totalc Commander)
Мы хотим, чтобы он выглядел как c:\destination.txt
Открываем Excel и начинаем правку. Возможностей при работе с таблицей гораздо больше, чем в Mass Rename из тотала

Особенности:
- При отсутствии папки (перенос в подпапку) скрипт создает требуемое;
- Скрипт ведет лог операций.

Пример: переименование файлов track001.mp3 исходя из найденного в интернете описания альбома музыкальной группы.

Качаем Отсюда>> (http://www.filesonic.com/file/60034081/rename.zip)

skufia
18.04.2013, 09:38
Ссылка на скрипт обновлена. Скачать можно отсюда>> (http://yadi.sk/d/KNn4h82K48gJE)