Войти

Показать полную графическую версию : Создание списка из файлов mp3


vvvv555666
23-06-2013, 11:06
Добрый день, подскажите!

В папке лежат фалы mp3. Необходимо составить список этих файлов определённого вида.

Пример:

01 News
02 News
03 News
05 News

В текстовом редакторе необходимо получить следующие:

FN=01 News.mp3*N=News
FN=02 News.mp3*N=News
FN=03 News.mp3*N=News
FN=04 News.mp3*N=News
FN=05 News.mp3*N=News

Обратите внимание, что после *N= должно стоять название файла без порядкового номера и расширения.

Я использую два способа:

1-й из командной строки

Пуск - выполнить - набрать cmd, в появившемся черном окне набрать
cd /d D:\music
нажать Enter
for %i in (*.mp3) do echo %i >> music.txt
нажать Enter

здесь D:\music - папка, в которой хранятся файлы mp3

2-ой написание bat файла и запуск его из папки с файлами

@echo off

for %%i in (*.mp3) do echo FN=%%i*N=*%%i>> music.txt

Как в первом так и во втором способе получается

FN=01 News.mp3*N=01 News.mp3
FN=02 News.mp3*N=02 News.mp3
FN=03 News.mp3*N=03 News.mp3
FN=04 News.mp3*N=04 News.mp3
FN=05 News.mp3*N=05 News.mp3

Вот в это моя проблема - как написать bat файл, чтобы после *N= мне не приходилось в ручную удалять порядковый номер и расширение. Обратите внимание, что после FN= порядковые номера и расширение должно остаться.

Спасибо! Извините за длинный вопрос.

megaloman
23-06-2013, 11:12
@echo Off

Set Out=D:\Music\Music.txt
Set What=D:\Music\*.mp3

Del "%Out%" 2>Nul
FOR /F "usebackq tokens=1,* delims= " %%i IN (`Dir "%What%" /B /A:-D 2^>Nul`) DO >>"%Out%" echo FN=%%i %%j*N=%%~nj
Если имена файлов только News, то можно написать
Set What=D:\Music\*News.mp3Я использую два способа:

1-й из командной строки

Пуск - выполнить - набрать cmd, в появившемся черном окне набрать
cd /d D:\music
нажать Enter
for %i in (*.mp3) do echo %i >> music.txt
нажать EnteЕсли хочется из командного окна,то
FOR /F "usebackq tokens=1,* delims= " %i IN (`Dir *.mp3 /B /A:-D`) DO >>Music.txt echo FN=%i %j*N=%~nj

vvvv555666
23-06-2013, 22:36
папка D:\Music\ естественно взята для примера и то что название файлов News тоже для примера.

Задача в том, чтобы bat файл запускать из любой папки и в ней же появлялся список.

Я уже сам смастерил вот это:

@echo Off

FOR /F "usebackq tokens=1,* delims= " %%i IN (`Dir "%What%" /B /A:-D 2^>Nul`) DO >>"%Out%" echo FN=%%i %%j*N=%%~nj>> aaa.txt


Теперь у меня проблема в том, что мне приходится bat файл и получившейся txt файл вырезать из папки помещать в следующую папку и запускать bat в txt, где уже автоматически добавляются списки файлов к уже существующим.
А можно ли написать bat файл на основе моего, но чтобы его запускать из папки, в которой находится несколько папок (например 6 штук) с музыкальными файлами.

Пример:
Допустим в папке Traveling Wilburys на диске Е лежат паки, в каждой из них файлы mp3

01 Volume 1 (1988) в ней файлы

01 Handle With Care
02 Dirty World
03 Rattled

02 Volume 2 [Tom Petty] (1989) в ней файлы

01 Free Fallin'
02 I Won't Back Down
03 Love Is A Long Road

и т.д. Необходимо получит следующий список:


F=01 Volume 1 (1988)*N=Volume 1 (1988)
FN=01 Handle With Care.mp3*N=Handle With Care
FN=02 Dirty World.mp3*N=Dirty World
FN=03 Rattled.mp3*N=Rattled
F=02 Volume 2 [Tom Petty] (1989)*N=Volume 2 [Tom Petty] (1989)
FN=01 Free Fallin'.mp3*N=Free Fallin'
FN=02 I Won't Back Down.mp3*N=I Won't Back Down
FN=03 Love Is A Long Road.mp3*N=Love Is A Long Road

megaloman
24-06-2013, 00:06
vvvv555666,
Если батник запускается в папке, где имеются подпапки с музыкой, то @echo Off

Set "Where="
Set "Txt=Music.txt"

Set Out="%Where%%Txt%"
Del %Out% 2>Nul

FOR /F "usebackq tokens=1,* delims= " %%D IN (`Dir "%Where%" /B /A:D 2^>Nul`) DO (
>>%Out% Echo F=%%D %%E*N=%%~nE
FOR /F "usebackq tokens=1,* delims= " %%i IN (`Dir "%Where%%%D %%E\*.mp3" /B /A:-D 2^>Nul`) DO >>%Out% Echo FN=%%i %%j*N=%%~nj
) Но батник можно иметь в любом месте, если указать в нём путь где имеются подпапки с музыкой, в этом случае в Вашем примере

Set "Where="

необходимо заменить на

Set "Where=E:\Traveling Wilburys\"

В любом случае получим текстовый файл нужного Вам вида в папке с подпапками с музыкой с указанным Вами именем, у меня имя задано как Music.txt в строке

Set "Txt=Music.txt"

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

Iska
24-06-2013, 05:05
По идее, можно организовать батник, чтобы запускать его с параметром -путём к папке, при этом доработка батника самая минимальная »
Именно. И пусть коллега vvvv555666 перетаскивает папки на пакетный файл.

vvvv555666
24-06-2013, 10:31
Огромное спасибо megaloman !!! Всё получилось. Если интересно могу рассказать для чего мне всё это надо было.




© OSzone.net 2001-2012