CMD/BAT - Создание списка из файлов mp3

Ответить
Аватара пользователя
vvvv555666

CMD/BAT - Создание списка из файлов mp3

Сообщение vvvv555666 »

Добрый день, подскажите!



В папке лежат фалы 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

Re: CMD/BAT - Создание списка из файлов mp3

Сообщение megaloman »

Код:

Код: Выделить всё

@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

Re: CMD/BAT - Создание списка из файлов mp3

Сообщение vvvv555666 »

папка 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

Re: CMD/BAT - Создание списка из файлов mp3

Сообщение megaloman »

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

Re: CMD/BAT - Создание списка из файлов mp3

Сообщение Iska »

Цитата megaloman:



По идее, можно организовать батник, чтобы запускать его с параметром -путём к папке, при этом доработка батника самая минимальная
CMD/BAT - Создание списка из файлов mp3




Именно. И пусть коллега vvvv555666 перетаскивает папки на пакетный файл.
Аватара пользователя
vvvv555666

Re: CMD/BAT - Создание списка из файлов mp3

Сообщение vvvv555666 »

Огромное спасибо megaloman !!! Всё получилось. Если интересно могу рассказать для чего мне всё это надо было.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»