Показать полную графическую версию : [решено] 2 переменных для MP3SPLT
mp3splt -c "File.cue" "Folder\File.mp3" - делит файл File.mp3 из папки Folder по File.cue из корневой папки.
Подскажите, пожалуйста, как сделать батник так, чтобы после обработки разделенные файлы сохранялись в папке Folder2??
PS: Нужен батник вида: for %%a in (Folder\*.mp3) do (
Sisin,
Вы лучше не решение подсказывайте, а полностью задачу опишите
Что находится в каталоге Folder, кроме разрезанных файлов?
Все ли файлы .mp3 требуется перенести из Folder в Folder2?
В общем, если подробнее опишете задачу, то получите более точное решение.
Что находится в каталоге Folder, кроме разрезанных файлов?
Все ли файлы .mp3 требуется перенести из Folder в Folder2?
В общем, если подробнее опишете задачу, то получите более точное решение. »
В каталоге Folder - 1 файл File.mp3 (Это файл копия всего AudioCD, которую надо поделить на композиции с помощью mp3splt)
Надо, чтобы поделенные файлы были в Folder2.
для этого нужно знать как работает этот самый mp3split. двухминутного чтения хелпа хватило бы для того чтобы найти параметры -o и -d
-o FORMAT
Output format. FORMAT is a string that will be used as output directory and/or filename. If FORMAT contains the DIRCHAR character ('\' on windows and '/' on other systems), directories will be created for each DIRCHAR if they don't exist and the output files will be created in the corresponding directory. If the -d option is not specified, the output directory is the concatenation of the input file directory and the extracted path from FORMAT. If the -d option is also specified, the output directory will be the concatenation between the -d option value and the extracted path from the -o FORMAT (characters up to the last DIRCHAR). Invalid filename characters from the tags are transformed to '_'.
It can contain name variables, that must begin with @ char and that can be:
@A: performer if found, otherwise artist
@a: artist name
@p: performer of each song (only with .cue)
@b: album title
@g: genre
@t: song title*
@n: track number identifier* (not the real ID3 track number)**
@N: track tag number**
@l: track number identifier as lowercase letter* (not the real ID3 track number)**
@L: track tag number as lowercase letter**
@u: track number identifier as uppercase letter* (not the real ID3 track number)**
@U: track tag number as uppercase letter**
@f: input filename (without extension)
@m, @s or @h: the number of minutes, seconds or hundreths of seconds of the start splitpoint**
@M, @S or @H: the number of minutes, seconds or hundreths of seconds of the end splitpoint**
(**) One digit may follow defining the number of digits to output.
If the digit is 0, then a special rule is applied when the pattern value is equal to 0:
- the pattern is discarded
- all characters like : _ . and -. preceding it are discarded
- all characters following it are discarded up to the next @ or a separator like : _ . and -
This rule is useful for discarding the last part of the time when equal to 0. For example @m_@s_@h0hundreths__@M_@S will only output @m_@s__@M_@S if the hundreths of seconds are 0.
When split files are more than one, at least one of @t, @n, @N, @l, @L, @u or @U (*) must be present to avoid ambiguous names. You can put any prefix, separator, suffix in the string, for more elegance. To make easy the use spaces in output filename without interfering with line parameters, you can use the char '+' that will be automatically replaced with a space. Valid examples are:
@n_@a_@b_@t
@a+-+@n+-+@t (default if using -c and -o is not specified)
@a/@b/@t_@n (will create the directories '<artist>' and '<artist>/<album>')
@f_@n+@m:@s+@M:@S
-d NAME
Output directory. To put all output files in the directory named NAME. If directory does not exists, it will be created. The -o option can also be used to output files into a directory.
как результат конечный батник (хотя какой там батник если ванлайном все делается) может выглядеть приблизительно так:
forfiles /P folder\ /m "*.mp3" /c "mp3split -c file.cue @path -d folder2\"
все это весьма приблизительно, да непонятно зачем, там же гуи есть, и морочиться ради одного файла даже не понимаю зачем.
морочиться ради одного файла даже не понимаю зачем. »
И я тоже не понимаю))
Смысл был в том, что File.mp3 и File.cue - это 2 переменные!!!
Какой смысл делать:
forfiles /P folder\ /m "*.mp3" /c "mp3split -c file.cue @path -d folder2\"
если file.cue надо вводить вручную??
О, становится интереснее, а теперь внимание вопрос: как соотнести cue с нужным mp3?
О, становится интереснее, а теперь внимание вопрос: как соотнести cue с нужным mp3? »
У MP3 и CUE - одинаковые названия (поэтому написано File.cue и File.mp3)
for /f %i in ('dir /b /a:-d "*.mp3"') do mp3splt -c "%~ni.cue" "Folder\%~ni.mp3" -d "folder2\%~ni"
все равно ванлайном. код для запуска из консоли, если превращать в батник критично - заменить % на %%. ну и пути тоже выставить, соответственно.
Все работает, благодарю)
А можно ли как-то обойти проблему с длинными именами с пробелами в названии?? Т.е. если название вида "Имя Артиста - 77 - Юбилейный альбом CD1", то батник не работает, а если просто "CD1", то все ОК.
Т.е. если название вида "Имя Артиста - 77 - Юбилейный альбом CD1", то батник не работает, »
Какой именно «батник»? Что значит — «не работает»? Если «ручками» набрать команду mp3splt в консоли с этими именами (разумеется, обрамлёнными кавычками) — команда отработает?
это скорее не с длинными именами а с кириллицей. по идее кодировка должна спасти (866). проблема пробелов решается кавычками. еще есть вариант что сама тулза не умеет работать с кириллицей, тогда остается только один извратный вариант - переименовывать исходные файлы, обрабатывать и переименовывать обратно, но я за написание такого точно не возьмусь, ибо хоть и умею наслаждаться извращениями, но вотэтовот явный перебор.
Elven, а где там кодировка-то может влиять? В Вашем коде (http://forum.oszone.net/post-2832854.html#post2832854) я таких мест не вижу, везде гольный ASCII. Кавычки в нужных местах также наличествуют. Так что, скорее, именно это:
еще есть вариант что сама тулза не умеет работать с кириллицей »
(есть такая частая проблема с импортными, портированными из мира Unix, утилитами) хотя в данном случае я и не проверял (поскольку коллега Sisin не выложил образцов для тестирования).
образцов для тестирования »
А я не сомневался что где-то это всплывет.
где там кодировка-то может влиять? »
например при указании пути в теле батника, я, конечно, обошелся без кириллицы, но гарантировать что Sisin сделал так же не могу.
например при указании пути в теле батника, я, конечно, обошелся без кириллицы, но гарантировать что Sisin сделал так же не могу. »
Это да. Я потому и спрашиваю у него — «какой именно «батник»?».
Это да. Я потому и спрашиваю у него — «какой именно «батник»?». »
Вот такой:
@echo ON
md fix
for %%a in (*.flac) do (
ffmpeg -i "%%~a" ^
-ab 320k ^
-map_metadata 0 ^
-id3v2_version 3 ^
"fix\%%~na.mp3"
)
for /f %%i in ('dir /b /a:-d "fix\*.mp3"') do (
MP3SPLT\mp3splt -c "%%~ni.cue" "fix\%%~ni.mp3" -d "fixed\%%~ni"
)
del /q fix
rd /q fix
pause
Если «ручками» набрать команду mp3splt в консоли с этими именами (разумеется, обрамлёнными кавычками) — команда отработает? »
Работает. Проверил. (http://prdownloads.sourceforge.net/mp3splt/mp3splt_2.6.2_i386.zip)
А при запуске "батника" в конце видим:
http://i89.fastpic.ru/big/2018/0926/40/38db9e7c34c7787fada6fe86892fb540.png (http://i91.fastpic.ru/big/2018/0926/ef/8811ad103cd123333c47e6bbe6ee05ef.jpg)
При условии названий:
Имя Артиста - 77 - Юбилейный альбом CD1.cue
Имя Артиста - 77 - Юбилейный альбом CD1.flac
Имя Артиста - 77 - Юбилейный альбом CD1.mp3
при запуске "батника" в конце видим: »
1. Сохраните батник в кодировке cp866
2. Вот эту часть:
for /f %%i ...
надо заменить на такую:
for /f "delims=" %%i ...
@echo ON
md fix
for %%a in (*.flac) do (
ffmpeg -i "%%~a" ^
-ab 320k ^
-map_metadata 0 ^
-id3v2_version 3 ^
"fix\%%~na.mp3"
)
for %%i in ("fix\*.mp3") do (
MP3SPLT\mp3splt -c "%%~ni.cue" "fix\%%~ni.mp3" -d "fixed"
)
del /q fix
rd /q fix
pause
Так все работает как надо.
Всем спасибо)
PS: Проблема была в fixed\%%~ni. Программа создает имя и путь в другой кодировке или что-то вроде того.
Лучше выбрать путь меньшего сопротивления)))
Sisin, проблема была в пробелах в пути/имени файла, а не в кодировке.
Так все работает как надо.
Всем спасибо)
PS: Проблема была в fixed\%%~ni. Программа создает имя и путь в другой кодировке или что-то вроде того. »
Вы спрашивали советы для того, чтобы в итоге не прислушиваться к ним и выдать свою, причем неправильную версию? Отличный подход! :)
На досуге поэкспериментируйте:
В каталоге, где расположено это "безобразие":
При условии названий:
Имя Артиста - 77 - Юбилейный альбом CD1.cue
Имя Артиста - 77 - Юбилейный альбом CD1.flac
Имя Артиста - 77 - Юбилейный альбом CD1.mp3 »
откройте консоль cmd и запустите сначала это:
for /f %i in ('dir /b/a-d') do @echo.%i
затем вот это:
for /f "delims=" %i in ('dir /b/a-d') do @echo.%i
PS Проанализируйте оба результата...
PS Проанализируйте оба результата... »
Согласен, Ваш вариант правильный.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.