PDA

Показать полную графическую версию : [решено] Объединить пакетно каждые 2 файла mp3 общего списка файлов


Metallor
17-08-2015, 14:39
Здравствуйте, помогите пожалуйста в решении следующей проблемы:
В папке находятся ≈ 3000 коротких mp3 файла, упорядоченных в алфавитном порядке.
Необходимо объединить пакетно каждые 2 файла списка между собой, т.е.:
1-й со 2-м,
3-й с 4-м,
5-й с 6-м, и т.д.

Iska
17-08-2015, 15:23
Цель какова?

Metallor
17-08-2015, 15:41
Имеется 3000 файлов, скачанных с сайта оксфордского словаря с дикторским произношением английских слов, также есть в наличии 3000 файлов с русскими словами, которые являются переводом первых трех тысяч.
Для того, чтобы иметь возможность в плейлисте плеера проигрывать слова в случайном порядке (а не в алфавитном), необходимо к каждому файлу с английским словом прикрепить файл с русским переводом. В противном случае при проигрывании в случайном (рандомном) порядке не происходит связка - сначала английское слово, а затем соответствующий ему перевод.

Foreigner
17-08-2015, 16:11
Metallor, Как должен выглядеть список? Как называются файлы?

Metallor
17-08-2015, 16:39
Foreigner, Названия файлов соответствуют словам, т.е.:
abandoned_en.mp3
abandoned_ru.mp3
abandon_en.mp3
abandon_ru.mp3
ability_en.mp3
ability_ru.mp3 и т.д.

Полный список в txt - https://cloud.mail.ru/public/CRz7/jwHTsCWLb

Желательно, чтобы полный список выглядел:
abandoned
abandon
ability и т.д. (без суффиксов _en и _ru)

Foreigner
17-08-2015, 17:10
Metallor, Т.е. вы хотите "склеить" файлы попарно? Не знаю будут ли они работоспособны после этого. Попробуйте в качестве эксперимента одну пару:

copy /b ability_en.mp3+ability_ru.mp3 ability.mp3

Metallor
17-08-2015, 17:18
Да, попарно. Пару "склеило" нормально, выходной файл работоспособен.

Foreigner
17-08-2015, 17:39
Metallor, Тогда так, можете запускать и идти пить чай, займет таки время:

@echo off
setlocal

for /f "tokens=1,2 delims=:" %%i in ('" dir /b *.mp3 | findstr /n "." "') do call:set %%i %%j
for /l %%i in (10001,2,%num%) do call:copy %%i
goto:eof

:set
set /a num=10000+%1
set "file_%num%=%2"
goto:eof

:copy
for /f "tokens=2 delims==" %%i in ('set file_%1') do set "en=%%i"
set /a n=%1+1
for /f "tokens=2 delims==" %%i in ('set file_%n%') do set "ru=%%i"
for /f "tokens=1 delims=_" %%i in ("%en%") do set "name=%%i.mp3"
echo copy /b %en%+%ru% %name%

Сначала попробуйте в холостую, а потом, если нормально, уберете красное echo

Metallor
17-08-2015, 17:57
Спасибо




© OSzone.net 2001-2012