Как переименовать кучу файлов
Nov. 10th, 2010 07:23 pm![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Имеется список файлов в txt-документе вида:
Название 1
Название 2
Название 3
... и т.д.
Имеется папка с файлами вида:
1.torrent
2.torrent
3.torrent
...и т.д.
Каким образом можно переименовать имеющиеся в папке файлы согласно списку из txt-файла?
Подскажите пожалуйста, а то вручную более 3000 файлов я за год не переименую. :(
----------------------------------------------------------------------------------------
aterentiev .
ВАТ-файл должен находится в той же директории, что и список для переименования + сами файлы для переименования. Файл шаблон (names.txt) должен быть вида:
старое название|новое название.
Содержимое BAT-файла:
chcp 1251
for /F "delims=| tokens=1,2" %%i in (names.txt) do ren "%%i" "%%j.torrent"
Название 1
Название 2
Название 3
... и т.д.
Имеется папка с файлами вида:
1.torrent
2.torrent
3.torrent
...и т.д.
Каким образом можно переименовать имеющиеся в папке файлы согласно списку из txt-файла?
Подскажите пожалуйста, а то вручную более 3000 файлов я за год не переименую. :(
----------------------------------------------------------------------------------------
![[info]](https://l-stat.livejournal.com/img/userinfo.gif?v=1)
ВАТ-файл должен находится в той же директории, что и список для переименования + сами файлы для переименования. Файл шаблон (names.txt) должен быть вида:
старое название|новое название.
Содержимое BAT-файла:
chcp 1251
for /F "delims=| tokens=1,2" %%i in (names.txt) do ren "%%i" "%%j.torrent"
no subject
Date: 2010-11-10 04:31 pm (UTC)no subject
Date: 2010-11-10 05:03 pm (UTC)В свое время искала отдельную утилитку на замену его Multi-rename tool - так ничего приличного и не нашла.
no subject
Date: 2010-11-10 07:26 pm (UTC)no subject
Date: 2010-11-10 06:02 pm (UTC)no subject
Date: 2010-11-10 06:48 pm (UTC)no subject
Date: 2010-11-10 04:32 pm (UTC)no subject
Date: 2010-11-10 04:35 pm (UTC)for i in `cat names.txt`
do
mv path_to_torrents/$n.torrent path_to/torrents/$i
n=`expr $n + 1`
done
Если дело происходит под виндами, нужно поставить cygwin. В других системах и так заработает.
no subject
Date: 2010-11-10 05:12 pm (UTC)no subject
Date: 2010-11-10 04:35 pm (UTC)no subject
Date: 2010-11-10 05:51 pm (UTC)no subject
Date: 2010-11-10 06:02 pm (UTC)no subject
Date: 2010-11-10 07:07 pm (UTC)no subject
Date: 2010-11-10 08:36 pm (UTC)http://db.tt/3FOdC3W
no subject
Date: 2010-11-11 08:46 am (UTC)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.
no subject
Date: 2010-11-11 10:53 am (UTC)no subject
Date: 2010-11-11 12:27 pm (UTC)хотя я бы поступил проще:
1. берем табличный процессор (Excel, Calc)
2. Импортируем файл, указав в качестве разделителя вертикальную черту. Получаем 2 колонки
3. Добавляем в начале колонку, в которую вносим ren "
4. Добавляем в середине колонку, в которой стоит " "
5. Добавляем в конце колонку, в которой только кавычка
6. Сохраняем как Tab-delimited
7. Открываем файл в текстовом редакторе и удаляем все Tab-ы
профит :)
no subject
Date: 2010-11-11 12:39 pm (UTC)no subject
Date: 2010-11-11 01:10 pm (UTC)no subject
Date: 2010-11-11 12:39 pm (UTC)Или есть вариант: заменить "перевод строки" на "кавычки, перевод строки, слово ren, пробел и кавычки". Первая и последняя строчки допиливаются вручную.
Остаток выкладывать?
no subject
Date: 2010-11-11 12:41 pm (UTC)no subject
Date: 2010-11-11 12:41 pm (UTC)no subject
Date: 2010-11-10 07:24 pm (UTC)@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"
no subject
Date: 2010-11-10 07:27 pm (UTC)если есть вопросы - задавай
no subject
Date: 2010-11-10 08:35 pm (UTC)Может взглянете, как это можно осуществить. :)
Файлы тут: http://db.tt/3FOdC3W
no subject
Date: 2010-11-10 08:52 pm (UTC)если файл содержит строки вида
старое название|новое название, то все гораздо проще. Я правильно понял, что файлы должны сохранить расширение .torrent?
Я не уверен, будет ли это работать с русскими буквами, но пока что проблемы не вижу. И еще: содержимое текстового файла должно быть (на мой взгляд) в кодировке Win.
@echo off
for /F "delims=|" %%i in ("! Шаблон переименования.txt") do (
ren "%%i" "%%j.torrent"
)
это нужно сохранить в бат-файл в папке с торрентами и запустить оттуда
no subject
Date: 2010-11-10 09:05 pm (UTC)no subject
Date: 2010-11-10 09:12 pm (UTC)no subject
Date: 2010-11-10 09:15 pm (UTC)no subject
Date: 2010-11-10 09:39 pm (UTC)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)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)Re: Все, победил!!!
Date: 2010-11-11 10:22 am (UTC)Re: Все, победил!!!
Date: 2010-11-11 11:14 am (UTC)Слэш "/" в имени файла недопустим
пс. может, вынести код в пост наверх? окончательный вариант - в две строки
chcp 1251
for /F "delims=| tokens=1,2" %%i in (names.txt) do ren "%%i" "%%j.torrent"
Re: Все, победил!!!
Date: 2010-11-11 11:39 am (UTC)no subject
Date: 2010-11-10 09:41 pm (UTC)no subject
Date: 2010-11-10 09:43 pm (UTC)no subject
Date: 2010-11-10 09:27 pm (UTC)во-первых, я бы посоветовал переименовать файл "! Шаблон переименования.txt" во что-нибудь с латинскими буквами, например типа "names.txt"
во-вторых, я почти уверен в тон, что русские буквы там в неправильной кодировке
сейчас запущу на своем компе и посмотрю
пс. 5 минут размышлений в туалете не сделали меня умнее - я не могу понять смысла переименования торрент-файлов... переименовывать скачанные мультики - да, а торренты - не понимаю...
no subject
Date: 2010-11-10 09:34 pm (UTC)"! Шаблон переименования.txt" я сразу переименовал в sh.txt (об этом я тоже подумал).
Убрал echOff - тоже самое происходит :(
no subject
Date: 2010-11-10 06:37 pm (UTC)no subject
Date: 2010-11-10 08:21 pm (UTC)no subject
Date: 2010-11-10 09:11 pm (UTC)no subject
Date: 2010-11-10 09:27 pm (UTC)no subject
Date: 2010-11-10 10:45 pm (UTC)Нажимаете кнопку Go.
no subject
Date: 2010-11-11 10:17 am (UTC)