Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Операционные системы общие вопросы
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2012, 12:35   #1
Lovi
Новичок
Джуниор
 
Регистрация: 03.04.2012
Сообщений: 7
По умолчанию написать короткий батник

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

Задача следующая:
1) есть файл "Q:\A.txt":
Название песни_1
Ненужная строчка
Ненужная строчка
Название песни_2
Ненужная строчка
Ненужная строчка
Название песни_3
Ненужная строчка
Ненужная строчка

........

Название песни_371
Ненужная строчка
Ненужная строчка
Название песни_372

Т.е. в каждой третьей строчке, начиная с первой и заканчивая последней, стоят названия песен(без расширения).


2) Есть папка "Q:\B", где файлы отсортированы по дате создания, начиная от самого раннего файла и кончая самым поздним файлом:
Какие-то буквы_1.mp3
Какие-то буквы_2.mp3
Какие-то буквы_3.mp3

.........

Какие-то буквы_372.mp3

3) Так вот нужно переименовать в этой папке "Какие-то буквы_N.mp3" на "Название песни_N.mp3" из файла "Q:\A.txt", где N пробегает по всем значениям, т.е. от 1 до 372.


Почему мне это надо(если кому интересно): хочу перенести все аудио "в контакте" к себе на жесткий диск. Для этого с помощью расширения для оперы "SaveFrom.net" и опции "Скачать все MP3 файлы" скачал все песни себе на жесткий диск в "Q:\B", но вместо названий там непонятные наборы букв. После этого я скопировал с интересующей страницы "в контакте" все названия песен в блокнот "Q:\A.txt".Осталось написать прогу, которая переименует файлы из папки на названия из блокнота.
Lovi вне форума Ответить с цитированием
Старый 03.04.2012, 13:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

первое. а кто Вам сказал, что батник будет короткий?!
второе.
Цитата:
Есть папка "Q:\B", где файлы отсортированы по дате создания
файлы в ФС расположены хаотично. Смысл фразы "отсортированы" ?!

третье. если названия песен и файлов не являются тайной (не содержать секретных данных), то выкладывайте в архиве ваш файл A.txt и список файлов из каталога Q:\B (сделать его можно так
Код:
dir Q:\B\*.mp3 > dir_B.txt
посмотрим, чем Вам можно помочь..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2012, 14:45   #3
Lovi
Новичок
Джуниор
 
Регистрация: 03.04.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
первое. а кто Вам сказал, что батник будет короткий?!
ну это чтобы увеличить вероятность захода в мою тему))
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
второе.

файлы в ФС расположены хаотично. Смысл фразы "отсортированы" ?!
что такое ФС не знаю(хотя наверное это "файловая структура"). но смысл такой, что сначала нужно отсортировать, а уже потом переименовывать, так как только отсортированные по дате файлы соответствуют такому же порядку из списка "A.txt".
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
третье. если названия песен и файлов не являются тайной (не содержать секретных данных), то выкладывайте в архиве ваш файл A.txt и список файлов из каталога Q:\B (сделать его можно так
Код:
dir Q:\B\*.mp3 > dir_B.txt
посмотрим, чем Вам можно помочь..
архив AB
Lovi вне форума Ответить с цитированием
Старый 03.04.2012, 15:26   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
так как только отсортированные по дате файлы соответствуют такому же порядку из списка "A.txt".
насколько я разбираюсь в "колбасных обрезках" у вас в файле dir_B.txt порядок как раз таки ПРОИЗВОЛЬНЫЙ! (не сортированный). так?

я их отсортировал (ручками)
получилось.
первые три файла (по времени создания)
1a51aca6f59e.mp3
904988c9a883.mp3
0877683087a1.mp3

это вот эти три трека:
"Alexey Romeo and Eugene Noiz - Take Me Away.mp3"
"Alexey Romeo and Eugene Noiz - Take Me Away (Club Mix).mp3"
"Feint - My Sunset (Record Mix).mp3"


а последние три
a5cbaced694b.mp3
6172e96b230d.mp3
155f9c5ebfa7.mp3

вот эти:
"Prodigy - Warning (Geust has no shame remix).mp3"
"Prodigy - Dead Ken Beats (live at Moscow).mp3"
"Dj goldIE vs DJ MOZYR - Ритм электро.mp3"


Так?

тогда вот вам батник для переименования!
vk_ren.rar

просмотрите его содержимое предварительно...
если возникнут вопросы, откуда он взялся, то я его ручками в Far Commander за пять минут соорудил...


потом можете пользоваться.
ВНИМАНИЕ! я бы предварительно скопировал все треки в отдельную папку и уже там запускал батник! Отменить действие батника просто так не получится!


удачи!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2012, 16:09   #5
Lovi
Новичок
Джуниор
 
Регистрация: 03.04.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
насколько я разбираюсь в "колбасных обрезках" у вас в файле dir_B.txt порядок как раз таки ПРОИЗВОЛЬНЫЙ! (не сортированный). так?

я их отсортировал (ручками)
получилось.
первые три файла (по времени создания)
1a51aca6f59e.mp3
904988c9a883.mp3
0877683087a1.mp3

это вот эти три трека:
"Alexey Romeo and Eugene Noiz - Take Me Away.mp3"
"Alexey Romeo and Eugene Noiz - Take Me Away (Club Mix).mp3"
"Feint - My Sunset (Record Mix).mp3"


а последние три
a5cbaced694b.mp3
6172e96b230d.mp3
155f9c5ebfa7.mp3

вот эти:
"Prodigy - Warning (Geust has no shame remix).mp3"
"Prodigy - Dead Ken Beats (live at Moscow).mp3"
"Dj goldIE vs DJ MOZYR - Ритм электро.mp3"


Так?

тогда вот вам батник для переименования!
Вложение 49280

просмотрите его содержимое предварительно...
если возникнут вопросы, откуда он взялся, то я его ручками в Far Commander за пять минут соорудил...


потом можете пользоваться.
ВНИМАНИЕ! я бы предварительно скопировал все треки в отдельную папку и уже там запускал батник! Отменить действие батника просто так не получится!


удачи!
спасибо, но как-то там все равно сдвинулись названия, плюс там оказались символы в названиях, которые в винде не поддерживаются, да и мне потом опять это может понадобиться,но с другими песнями.

Не могли бы вы объяснить или хотя бы написать какие команды вы использовали. ren- переименовать- это понятно. непонятно, как выделить каждую третью строку и как сделать, чтобы работа была именно с отсортированными файлами
Lovi вне форума Ответить с цитированием
Старый 04.04.2012, 00:20   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
но как-то там все равно сдвинулись названия
если это произошло, значит сортировка файлов по дате НЕ СООТВЕТСТВУЕТ порядку файлов в плейлисте и дальнейшие действия уже, по большому счёту, бессмыслены. Согласны?

Цитата:
плюс там оказались символы в названиях, которые в винде не поддерживаются
это в названиях песен, очевидно? Можно обработать эти имена, заменив эти символы на допустимые... или вообще выкинув недопустимые символы.

Цитата:
да и мне потом опять это может понадобиться,но с другими песнями.

Не могли бы вы объяснить или хотя бы написать какие команды вы использовали. ren- переименовать- это понятно. непонятно, как выделить каждую третью строку и как сделать, чтобы работа была именно с отсортированными файлами
ну я же сказал - я это делал ВРУЧНУЮ (нажимая клавиши - Record Macro. потом удалял две строчки. сдвигал курсор. останавливал запись. ПОтом повторял это вручную 372 раза.
Потом выделил текст названий и скопировал в файлик с именами файлов. ДОбавил (через ту же макрозапись нажатий клавиш - ren, кавычки и .mp3).
всё.

по хорошему, можно написать программку на любом языке программирования (хоть Delphi, хоть C#, хоть что угодно).
но проблема в том, что автоматизировать можно только то, что подаётся строгой формализации (можно составить строгий алгоритм). А то, что у Вас названия сдвинулись - это говорит о том, что в данном случае с этим будут проблемки...

ну, если не махнёте рукой - придумывайте идеи, поможем...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2012, 01:09   #7
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

А сами то файлы что из себя представляют?
Может быть их по тегам как нибудь переименовать проще будет.
Тогда и файл этот с названиями не понадобится.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 04.04.2012, 09:17   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Ulex
Может быть их по тегам как нибудь переименовать проще будет.
+ 100500!
вот. точно!
Как же я забыл. если внутри MP3 файлов присутствуют тэги, то задача решается быстро и эффективно! (например, через Tag&Rename)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2012, 11:49   #9
Lovi
Новичок
Джуниор
 
Регистрация: 03.04.2012
Сообщений: 7
По умолчанию

Написал на паскале прогу, но получилась ЖЕСТЬ, все русские буквы в названиях стали нечитаемыми! как сделать их нормальными, или хотя бы , что нужно написать было в проге, чтобы такого не было???

Код:
{скопируй в контакте  песни в файл A.txt,
 (*)-- программа создаст файл q.txt, где песни из файла А.txt будут идти без пропуска строк,
 в cmd с помощью команды "dir *.mp3 > dirB.txt" создай файл dirB.txt с именами всех файлов
 и удали в нем первые несколько строк и последние, в которых нету имен,
 (**)-- затем каждую строчку dirB.txt программа поместит в массив m[i],
 (***)-- затем программа отсортирует m[i] по дате создания?
 (****)-- затем создастся файл bb.txt, в который перепишется уже отсортированный m[i]
 (*****)-- затем  файл bb.txt перепишется во вновь создавшийся файл bbb.txt, только уже без времени создания, которые шли в начале строчки
 (******)-- в конце создастся файл n.txt вида "ren имя1 имя2"
 переименуй получившейся n.txt в батник и запусти в каталоге с нужными песнями}
uses crt;
const p=372;
var fa, fq, fb, fbb, fbbb, fn: text;
a,n,x,y: string;
m: array[1..p] of string;
i, j: integer;
begin
clrscr;

{(*)}
assign(fa, 'A.txt');
reset(fa);
assign(fq, 'q.txt');
rewrite(fq);
repeat
 readln(fa,a);
 writeln(fq,a);
 readln(fa,a);
 readln(fa,a);
until eof(fa);
close(fq);
close(fa);

{(**)}
assign(fb, 'dirB.txt');
reset(fb);
for i:=1 to p do
readln(fb,m[i]);
close(fb);

{(***)}
for i:=1 to p-1 do
for j:=i+1 to p do 
if m[i]>m[j] then begin n:=m[i]; m[i]:=m[j]; m[j]:=n; end;

{(****)}
assign(fbb, 'bb.txt');
rewrite(fbb);
for i:=1 to p do
writeln(fbb,m[i]);
close(fbb);

{(*****)}
assign(fbb, 'bb.txt');
reset(fbb);
assign(fbbb, 'bbb.txt');
rewrite(fbbb);
repeat
readln(fbb,n);
i:=30;
while n[i]<>' ' do i:=i+1;
i:=i+1;
while i<=length(n) do
begin
write(fbbb,n[i]);
i:=i+1;
end;
writeln(fbbb);
until eof(fbb);
close(fbbb);
close(fbb);

{(******)}
assign(fbbb, 'bbb.txt');
reset(fbbb);
assign(fq, 'q.txt');
reset(fq);
assign(fn, 'n.txt');
rewrite(fn);
for i:=1 to p do
begin
readln(fbbb, x);
readln(fq, y);
writeln(fn,'ren "'+ x+ '" "'+ y +'.mp3"');
end;
close(fbbb);
close(fq);
close(fn);

readln;
end.
Lovi вне форума Ответить с цитированием
Старый 04.04.2012, 15:10   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Написал на паскале прогу, но получилась ЖЕСТЬ
выкиньте свой TurboPascal!! Как и любой другой компилятор под MS DOS.
возьмите любой компилятор под Win32 (хоть FP, хоть Delphi - любой версии, желательно постарше, но накройняк и Delphi 7 вполне подойдёт. а ещё есть портативные сборки Delphi, которые работают без установки, для вашего случая - отличный (ну, если не брать во внимание лицензионность) вариант).

это раз.

второе. то, что порядок файлов в файлах A и B может не совпасть Вас, как я понял, особо не напрягает...

и третье. про теги в mp3 сообщения в данной теме мимо ваших глаз не прошли незамеченными, надеюсь...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
короткий вопрос. pinkiller Общие вопросы C/C++ 1 25.12.2011 15:02
Батник Last Помощь студентам 6 28.11.2011 23:25
Написать батник olegarx Помощь студентам 7 17.03.2010 08:20
Написать на делфи батник. Как? TwiX Общие вопросы Delphi 8 03.11.2009 00:06
Батник OG4Life Помощь студентам 0 11.05.2009 17:45