Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание списка из файлов mp3

Ответить
Настройки темы
CMD/BAT - Создание списка из файлов mp3

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

В папке лежат фалы 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= порядковые номера и расширение должно остаться.

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

Отправлено: 11:06, 23-06-2013

 

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 23-06-2013 в 11:30.


Отправлено: 11:12, 23-06-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 22:36, 23-06-2013 | #3


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


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"

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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 24-06-2013 в 00:14.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:06, 24-06-2013 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата megaloman:
По идее, можно организовать батник, чтобы запускать его с параметром -путём к папке, при этом доработка батника самая минимальная »
Именно. И пусть коллега vvvv555666 перетаскивает папки на пакетный файл.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:05, 24-06-2013 | #5


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 10:31, 24-06-2013 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание списка из файлов mp3

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование файлов из списка *.txt IntuitOS Скриптовые языки администрирования Windows 12 30-03-2013 10:36
VBS/WSH/JS - Создание группы файлов Excel на основе списка Serg2010 Скриптовые языки администрирования Windows 4 23-03-2013 00:43
Создание группы файлов Excel на основе списка Serg2010 AutoIt 1 19-03-2013 05:43
CMD/BAT - [решено] Создание файлов из списка в txt kasik Скриптовые языки администрирования Windows 1 15-01-2011 20:04
C/C++ - Создание списка файлов Albreht Программирование и базы данных 2 20-07-2009 01:17




 
Переход