Показать полную графическую версию : нужен командный файл формирования mp3-файла из четырех
krokradio
31-01-2014, 16:07
Ежедневная рубрика на радиостанции, которая должна выходить 3 раза в день. В 08-00, 14-00 и 19-30.
Есть папка
E:\Audio\MUSIC\- тематические подборки\Литургия\church\
В ней лежат начитанные и проименованные по датам формата ММЧЧ.mp3 файлы передач (пример 0201.mp3) и файлы вступления и выхода (календарь (лайнер).mp3 и календарь (финал).mp3)
Есть папка
E:\Audio\MUSIC\- тематические подборки\Литургия\
В ней лежит подборка музыки в подпапках (название альбома) и плейлист liturg.alb (Wolosoft Raduga)
Пример содержания файла liturg.alb открытого через блокнот
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\01 - Doxazomen Sou Christe.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\02 - Ek Rizis Agathis.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\03 - O Synapostatis Tyrannos.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\04 - O Phariseos.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\05 - O Vasilevs Tis Doxis Christos.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\06 - I Edessa.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\07 - Tin Pentachordon Lyran.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\08 - Igapisas Theophore.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\09 - Yper Ton Ellinon.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\10 - I En Polles Amarties.mp3
Нужен командный файл (желательно bat-ник), который при запуске будет формировать 3 mp3-файла на указанное выше время.
Файлы для склейки:
1. E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (лайнер).mp3
2. Файл передачи на текущую дату типа E:\Audio\MUSIC\- тематические подборки\Литургия\church\0201.mp3
3. Одну случайную дорожку из liturg.alb (есть возможность переименовать его в txt. Это ничего не поменяет)
4. E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (финал).mp3
Путь формирования mp3-файла:
E:\Air\events\church\pool\
Имя mp3-файла:
формат: ччмм =ММЧЧ= календарь.mp3
пример:
0800 =0201= календарь.mp3
1400 =0201= календарь.mp3
1930 =0201= календарь.mp3
Помогите пожалуйста. Буду ОООчень благодарен.
krokradio
01-02-2014, 01:25
Попробую чуть попроще
Нужно из четырех музыкальных файлов сделать один.
1. E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (лайнер).mp3
2. E:\Audio\MUSIC\- тематические подборки\Литургия\church\ММЧЧ.mp3 (ММ - месяц, ЧЧ - число) (Это календарь праздников. На каждый день новая начитка.)
3. E:\Audio\MUSIC\- тематические подборки\Литургия\случайная папка\случайный файл.mp3 (Там более 800 аудиофайлов рассортированых по альбомам. Нужно что б каждый раз выбирался рандомно один.)
4. E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (финал).mp3
Эта процедура должна создавать 3 файла
E:\Air\events\church\pool\0800 =ММЧЧ= календарь.mp3 (ММ - месяц, ЧЧ - число)
E:\Air\events\church\pool\1400 =ММЧЧ= календарь.mp3 (ММ - месяц, ЧЧ - число)
E:\Air\events\church\pool\1930 =ММЧЧ= календарь.mp3 (ММ - месяц, ЧЧ - число)
Пример для 01 февраля (0201):
Есть
1. E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (лайнер).mp3
2. E:\Audio\MUSIC\- тематические подборки\Литургия\church\0201.mp3
3. E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\03 - O Synapostatis Tyrannos.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\04 - O Phariseos.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\05 - O Vasilevs Tis Doxis Christos.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\06 - I Edessa.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\07 - Tin Pentachordon Lyran.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\08 - Igapisas Theophore.mp3
E:\Audio\MUSIC\- тематические подборки\Литургия\2009 - Kassia\09 - Yper Ton Ellinon.mp3
\И так далее более 40-ка папок и 800-та файлов
4. E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (финал).mp3
Эта процедура должна создавать 3 файла
E:\Air\events\church\pool\0800 =0201= календарь.mp3
E:\Air\events\church\pool\1400 =0201= календарь.mp3
E:\Air\events\church\pool\1930 =0201= календарь.mp3
Если что-то упустил - скажите. Уточню.
Foreigner
01-02-2014, 06:11
Не проверял:
@echo off
setlocal
1>nul chcp 1251
for %%i in (0800 1400 1930) do call:0 %%i
goto:eof
:0
set "audio_1=E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (лайнер).mp3"
for /f "tokens=2 delims=." %%i in ("%date%") do (
set "audio_2=E:\Audio\MUSIC\- тематические подборки\Литургия\church\%%j%%i.mp3"
set "d=%%j%%i"
)
for /f "tokens=*" %%i in (' dir /b /s "E:\Audio\MUSIC\- тематические подборки\Литургия\*.mp3" ') do call:1 "%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do set "audio_3=%%i"
set "audio_4=E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (финал).mp3"
for /f "tokens=2 delims==" %%i in (' set audio_ ') do 1>>"E:\Air\events\church\pool\%1 =%d%= календарь.mp3" type "%%i"
goto:eof
:1
set "f_%random%=%~1"
krokradio
01-02-2014, 16:48
При формировании имени файла написало с ошибкой "0800 =%j02= календарь.mp3"
Файлы создались с нулевым размером.
В CMD для склейки используется команда:
copy /b "D:\Папка номер 2\1.mp3"+"D:\Папка номер 2\2.mp3"+"D:\Папка номер 2\3.mp3"+"D:\Папка номер 2\4.mp3" "D:\Папка номер 2\5.mp3"
если параметр /b убрать, то файлы тоже создаются пустышками
Foreigner
01-02-2014, 18:07
"0800 =%j02= календарь.mp3" »
Исправьте:
for /f "tokens=1,2 delims=." %%i in ("%date%") do ...
В CMD для склейки используется команда: copy /b
type тоже работает. Попробовал:
for %%i in (1.mp3 2.mp3 3.mp3) do 1>>"4.mp3" type "%%i"
Но если вам удобней copy, то кто же может запретить? Вместо цикла с 'set audio_' пропишите строку копирования:
copy /b %audio_1%+%audio_2%+%audio_3%+%audio_4% "E:\Air\events\church\pool\%1 =%d%= календарь.mp3"
krokradio
01-02-2014, 18:54
В 11-й строчке я исправил на
for /f "tokens=1,2 delims=." %%i in ("%date%") do (
Больше ничего не изменял пока.
Имена файлов формируются правильно. Файлы не пустые, но
0800 =0201= календарь.mp3 - полностью нормальный. Сводит все 4 файла.
1400 =0201= календарь.mp3 и 1930 =0201= календарь.mp3 сводят только файлы 1, 2 и 4.
Музыкальные файлы из коллекции не подтягивает.
И еще. Все эти 3 созданных файла (0800 =0201= календарь.mp3, 1400 =0201= календарь.mp3 и 1930 =0201= календарь.mp3)
должны отличатся содержанием %audio_3%.
То есть это должно быть не создание одного файла с тремя разными именами, а создание трех разных по содержанию файлов.
:help:
krokradio
02-02-2014, 02:32
Я попробовал пойти обходным путем. Из кода в строчке "for %%i in (0800 1400 1930) do call:0 %%i" я убрал два значения. осталось "for %%i in (0800) do call:0 %%i"
Этот скрипт без проблем создает мне один файл вида "0800 =0201= календарь.mp3"
Для того, что б создать еще 1400 =0201= календарь.mp3 и 1930 =0201= календарь.mp3 я попробовал просто повторить в файле код 3 раза меняя значение
"for %%i in (0800) do call:0 %%i" на "for %%i in (1400) do call:0 %%i" и "for %%i in (1930) do call:0 %%i"
Возможно требуется какое-то разделение между ними, так как процесс уходит в цикл и чего то доклеивает в созданные файлы. Их размер растет непрерывно.
Foreigner
02-02-2014, 10:00
Немного переделал:
@echo off
setlocal
1>nul chcp 1251
for /f "tokens=1,2 delims=." %%i in ( "%date%" ) do set "d=%%j%%i"
set "audio_1=E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (лайнер).mp3"
set "audio_2=E:\Audio\MUSIC\- тематические подборки\Литургия\church\%d%.mp3"
set "audio_4=E:\Audio\MUSIC\- тематические подборки\Литургия\church\календарь (финал).mp3"
for /f "tokens=*" %%i in (' dir /b /s "E:\Audio\MUSIC\- тематические подборки\Литургия\*.mp3" ') do call:set "%%i"
for %%i in (0800 1400 1930) do call:merge "%%i"
goto:eof
:set
set "mp3/%random%=%~1"
goto:eof
:merge
for /f "tokens=2,3 delims=/=" %%i in (' set mp3/ ') do (
set "audio_3=%%j"
set "del=%%i"
)
set "mp3/%del%="
copy /b "%audio_1%"+"%audio_2%"+"%audio_3%"+"%audio_4%" "E:\Air\events\church\pool\%~1 =%d%= календарь.mp3"
krokradio
02-02-2014, 13:51
ммм.... что-то происходит, но файлы в конечной папке не появляются...
Foreigner
02-02-2014, 16:46
krokradio, Я не тестировал полностью, т.к. не хотел создавать окружение под задачу. Попробуйте в команде copy все переменные audio_-# заключить в кавычки.
krokradio
02-02-2014, 17:31
К сожалению результат тот же... Сейчас вернусь с работы домой - буду сидеть вникать.
krokradio, теперь Вы меня понимаете? ;)
krokradio
02-02-2014, 20:21
теперь Вы меня понимаете? » :cry:
krokradio
03-02-2014, 00:03
@echo on
setlocal
1>nul chcp 1251
for %%i in (0800) do call:0 %%i
for %%i in (1400) do call:2 %%i
for %%i in (1930) do call:4 %%i
goto:eof
:0
set "audio_1=D:\BATник\church\календарь (лайнер).mp3"
for /f "tokens=1,2 delims=." %%i in ("%date%") do (
set "audio_2=D:\BATник\church\%%j%%i.mp3"
set "d=%%j%%i"
)
for /f "tokens=*" %%i in (' dir /b /s "D:\BATник\Папка номер 1\*.mp3" ') do call:1 "%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do set "audio_3=%%i"
set "audio_4=D:\BATник\church\календарь (финал).mp3"
for /f "tokens=2 delims==" %%i in (' set audio_ ') do 1>>"D:\BATник\Папка номер 2\%1 =%d%= календарь.mp3" type "%%i"
goto:eof
:1
set "f_%random%=%~1"
goto:eof
:2
set "audio_1=D:\BATник\church\календарь (лайнер).mp3"
for /f "tokens=1,2 delims=." %%i in ("%date%") do (
set "audio_2=D:\BATник\church\%%j%%i.mp3"
set "d=%%j%%i"
)
for /f "tokens=*" %%i in (' dir /b /s "D:\BATник\Папка номер 1\*.mp3" ') do call:3 "%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do set "audio_3=%%i"
set "audio_4=D:\BATник\church\календарь (финал).mp3"
for /f "tokens=2 delims==" %%i in (' set audio_ ') do 1>>"D:\BATник\Папка номер 2\%1 =%d%= календарь.mp3" type "%%i"
goto:eof
:3
set "f_%random%=%~1"
goto:eof
:4
set "audio_1=D:\BATник\church\календарь (лайнер).mp3"
for /f "tokens=1,2 delims=." %%i in ("%date%") do (
set "audio_2=D:\BATник\church\%%j%%i.mp3"
set "d=%%j%%i"
)
for /f "tokens=*" %%i in (' dir /b /s "D:\BATник\Папка номер 1\*.mp3" ') do call:5 "%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do set "audio_3=%%i"
set "audio_4=D:\BATник\church\календарь (финал).mp3"
for /f "tokens=2 delims==" %%i in (' set audio_ ') do 1>>"D:\BATник\Папка номер 2\%1 =%d%= календарь.mp3" type "%%i"
goto:eof
:5
set "f_%random%=%~1"
goto:eof
Создает три файла. При первом запуске все три файла создало с разным размером. Я ооочень обрадовался. Но почему то все последующие запуски меня обломали.
0800 =0201= календарь.mp3 - нормально. Берет первую рендомную дорожку
1400 =0201= календарь.mp3 - нормально. Берет вторую рендомную дорожку
1930 =0201= календарь.mp3 = 1400 =0201= календарь.mp3 - не нормально. Тоже берет вторую рендомную дорожку.
Где я ошибся?
Мне кажется, что неправильно срабатывает строка set "f_%random%=%~1". Она то в двух, то во всех трех файлах повторяет аудио_3
Точно что-то с рандомом. Иногда все файлы разные, иногда два из трех одинаковые, иногда все три одинаковых. И это при предоставленном выборе в 100 файлов для аудио3.
Foreigner
03-02-2014, 01:45
krokradio, Не знаю почему у вас не работает мой последний вариант, я таки создал подобное окружение, у меня все отрабатывает корректно. mp3 более 3 тыс.
PS. Почему бы не создать плейлисты?
krokradio
03-02-2014, 02:22
PS. Почему бы не создать плейлисты? »
Скорее всего этим путем и пойду. Будет неудобство, что нужно будет файлы программ по три штуки в день ставить на разное время и раз в год обновлять базу. А в остальном модуль автоматизации возьму из существующих... Завтра буду на работе пробовать, а то все эти дни работал через тимвьювер. Немного не удобно и наконец загнал машину. а там запущенные процедуры позволяют восстановить ее только в безопасном режиме (если без гемороя с пошаговым убиванием процессов на тормозящей машине). :dont-know
Спасибо за помощь
Foreigner
03-02-2014, 07:37
krokradio, А в какой кодировке вы сохранили батник? Надо в cp1251 или если в cp866, убрать строчку с "chcp 1251"
krokradio
03-02-2014, 13:05
А в какой кодировке вы сохранили батник? »
через АкелПад в вин 1251 (ANSI - кирилица)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC