[identity profile] drfischer.livejournal.com posting in [community profile] useful_faq
Имеется список файлов в txt-документе вида:

Название 1
Название 2
Название 3
... и т.д.

Имеется папка с файлами вида:

1.torrent
2.torrent
3.torrent
...и т.д.


Каким образом можно переименовать имеющиеся в папке файлы согласно списку из txt-файла?
Подскажите пожалуйста, а то вручную более 3000 файлов я за год не переименую. :(

----------------------------------------------------------------------------------------


 

Решение найдено. Спасибо [info]aterentiev .

ВАТ-файл должен находится в той же директории, что и список для переименования + сами файлы для переименования. Файл шаблон (names.txt) должен быть вида:
старое название|новое название.

Содержимое BAT-файла:

chcp 1251
for /F "delims=| tokens=1,2" %%i in (names.txt) do ren "%%i" "%%j.torrent"

Date: 2010-11-10 04:31 pm (UTC)
From: [identity profile] endarkened.livejournal.com
в Тотальном Командире есть мульти-ренейм тул. вызывается на выделении по ctrl+m

Date: 2010-11-10 05:03 pm (UTC)
From: [identity profile] laisan.livejournal.com
Присоединяюсь к рекомендации Total Commander.

В свое время искала отдельную утилитку на замену его Multi-rename tool - так ничего приличного и не нашла.

Date: 2010-11-10 07:26 pm (UTC)
From: [identity profile] max-i-max.livejournal.com
Renamer от dimonius, очень хороший

Date: 2010-11-10 06:48 pm (UTC)
From: [identity profile] aresh.livejournal.com
Это полнофункциональное shareware. Не вижу проблем поставить.. http://www.ghisler.com/

Date: 2010-11-10 04:32 pm (UTC)
From: [identity profile] endarkened.livejournal.com
а без коммандира можно спросить у гугля multi-rename tool for windows.

Date: 2010-11-10 04:35 pm (UTC)
From: [identity profile] potan.livejournal.com
n=1
for i in `cat names.txt`
do
mv path_to_torrents/$n.torrent path_to/torrents/$i
n=`expr $n + 1`
done

Если дело происходит под виндами, нужно поставить cygwin. В других системах и так заработает.

Date: 2010-11-10 04:35 pm (UTC)
From: [identity profile] sam-buddy.livejournal.com
Собственно, любым файл-менеджером. А можно в яндексе "переименовать по шаблону" набрать. Тоже помогает.

Date: 2010-11-10 05:51 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
я б написал bat-файл, который это делает....

Date: 2010-11-10 07:07 pm (UTC)
From: [identity profile] karpion.livejournal.com
Дайте список файлов и список во что их надо переименовать. А то в упор непонятно.

Date: 2010-11-11 08:46 am (UTC)
From: [identity profile] karpion.livejournal.com
Зачем мне сами эти файлы?

ren "13.reis.avi.torrent" "13 рейс"
ren "2.pljus.1.ravno.1.avi.torrent" "2+1="
ren "25-e.pervyj.den.avi.torrent" "25-е, первый день"
ren "tri.novelly.avi.torrent" "3 новеллы"
ren "32.dekabrya.avi.torrent" "32 декабря"
ren "38.popugaev.avi.torrent" "38 попугаев"
ren "38.a.vdrug.poluchitsya.avi.torrent" "38 попугаев. А вдруг получится!.."
ren "38.babushka.udava.avi.torrent" "38 попугаев. Бабушка удава"
ren "38.velikoe.zakrytie.avi.torrent" "38 попугаев. Великое закрытие"
ren "38.zavtra.budet.zavtra.avi.torrent" "38 попугаев. Завтра будет завтра"
ren "38.zaraydka.dlya.hvosta.avi.torrent" "38 попугаев. Зарядка для хвоста"
ren "38.kak.lechit.udava.avi.torrent" "38 попугаев. Как лечить удава?"
ren "38.kuda.idet.slonenok.avi.torrent" "38 попугаев. Куда идёт слонёнок"
ren "38.nenaglyadnoe.posobie.avi.torrent" "38 попугаев. Ненаглядное пособие"
ren "38.privet.martyshke.avi.torrent" "38 попугаев. Привет мартышке"
ren "5.na.4.avi.torrent" "05.апр"


Записать это в файл с расширением "BAT" (в ту же папку, где эти файлы) и запустить его. Если получится что-то не то - есть заархивированная копия.

Куда выкладывать остальное? Может, кинуть на почту?

PS: Против проблемы с кодировками тут уже говорили. Вроде, файл с расширением BAT использует cp866, а файл с расширением CMD использует win1251.

Date: 2010-11-11 12:27 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
подозреваю что-то с регулярными выражениями :)
хотя я бы поступил проще:
1. берем табличный процессор (Excel, Calc)
2. Импортируем файл, указав в качестве разделителя вертикальную черту. Получаем 2 колонки
3. Добавляем в начале колонку, в которую вносим ren "
4. Добавляем в середине колонку, в которой стоит " "
5. Добавляем в конце колонку, в которой только кавычка
6. Сохраняем как Tab-delimited
7. Открываем файл в текстовом редакторе и удаляем все Tab-ы
профит :)

Date: 2010-11-11 01:10 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
голь на выдумки... :)

Date: 2010-11-11 12:39 pm (UTC)
From: [identity profile] karpion.livejournal.com
Написал макрос.

Или есть вариант: заменить "перевод строки" на "кавычки, перевод строки, слово ren, пробел и кавычки". Первая и последняя строчки допиливаются вручную.

Остаток выкладывать?

Date: 2010-11-10 07:24 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
Вот так примерно, замени выделенное жирным на нужное

@echo off
setlocal ENABLEDELAYEDEXPANSION
set /a num=0
for /F "delims=" %%i in (names.txt) do (
set /A num+=1
ren "path_to_torrents\!num!.torrent" "%%i.torrent"
)

переименовывает файлы 1.torrent, 2.torrent и так далее, лежащие в подкаталоге path_to_torrents в имена из файла "names.txt"

Date: 2010-11-10 07:27 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
ах, да, имена в файле должны быть без расширения ".torrent"

если есть вопросы - задавай

Date: 2010-11-10 08:52 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
фигасе, 16мб рар :)

если файл содержит строки вида
старое название|новое название, то все гораздо проще. Я правильно понял, что файлы должны сохранить расширение .torrent?

Я не уверен, будет ли это работать с русскими буквами, но пока что проблемы не вижу. И еще: содержимое текстового файла должно быть (на мой взгляд) в кодировке Win.

@echo off
for /F "delims=|" %%i in ("! Шаблон переименования.txt") do (
ren "%%i" "%%j.torrent"
)

это нужно сохранить в бат-файл в папке с торрентами и запустить оттуда

Date: 2010-11-10 09:39 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
все, нашел ошибку, но с кодировкой имен все равно не лады... ох уж эти русские буквы...

for /F "delims=| tokens=1,2" %%i in (names.txt) do (
ren "%%i" "%%j.torrent"
)

нужно попробовать изменить кодировку файла names.txt на что-то, что windows поймет
ANSI не подходит

Все, победил!!!

Date: 2010-11-10 09:56 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
Заработало!!!

chcp 1251
for /F "delims=| tokens=1,2" %%i in (names.txt) do (
ren "%%i" "%%j.torrent"
)

... надо было сразу кодовую страницу менять

Re: Все, победил!!!

Date: 2010-11-11 08:51 am (UTC)
From: [identity profile] aterentiev.livejournal.com
Ну как, получилось?

Re: Все, победил!!!

Date: 2010-11-11 11:14 am (UTC)
From: [identity profile] aterentiev.livejournal.com
Знаю
Слэш "/" в имени файла недопустим

пс. может, вынести код в пост наверх? окончательный вариант - в две строки

chcp 1251
for /F "delims=| tokens=1,2" %%i in (names.txt) do ren "%%i" "%%j.torrent"

Date: 2010-11-10 09:41 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
я завтра на работе FAR-ом сменю кодировку на win и попробую еще раз

Date: 2010-11-10 09:43 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
точнее, не кодировку, а кодовую страницу

Date: 2010-11-10 09:27 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
тогда нужно убрать строку с @echo off, запустить и посмотреть, что происходит
во-первых, я бы посоветовал переименовать файл "! Шаблон переименования.txt" во что-нибудь с латинскими буквами, например типа "names.txt"
во-вторых, я почти уверен в тон, что русские буквы там в неправильной кодировке

сейчас запущу на своем компе и посмотрю

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

Date: 2010-11-10 06:37 pm (UTC)
From: [identity profile] alia-the-pony.livejournal.com
http://www.dimonius.ru/?renamer

Date: 2010-11-10 09:11 pm (UTC)
From: [identity profile] nataein.livejournal.com
AntRenamer - позволяет переименовывать по списку, с применением регулярных выражений и множеством других способов.

Date: 2010-11-10 10:45 pm (UTC)
From: [identity profile] nataein.livejournal.com
Запускаете AntRenamer. В закладку Files закидывате ваши файлы. В закладке Actions находите Take name from list, выбираете его мышью. Открывается поле. Вставляете туда список из вашего txt файла.
Нажимаете кнопку Go.