#batch-file #command-line
Вопрос:
Я хотел бы попросить пользователя указать начальные и конечные номера и объединить только те файлы, например, у меня есть папка с:
1.mp3
2.mp3
3.mp3 and so on...
Если пользователь ответит 4 для начала и 10 для конца, это будет сделано:
скопируйте /B 4.mp3 5.mp3 6.mp3 (до 10) в файл с именем Joined.mp3
Вот что у меня есть до сих пор… извините, немного…
set /p start="Start:"
set /p end="End:"
for %g in ("c:tempmp3*.*") DO (copy /B ...)
Я здесь совсем заблудился… любой совет был бы очень признателен!
Комментарии:
1. я не думаю, что вы можете «складывать» такие аргументы. Вы можете
type file1.ext >> output.file
добавить, но я думаю, что это искажает текстовые двоичные данные. Я бы создал новый пакетный файл из старого (файл перенаправляется, глядя на вас), распечаталcopy
его, затем добавил к нему каждое интересное имя файла, а затем напечатал в нем последнюю часть команды (joined.mp3
). Затем у вас есть универсальный файл bat, который делает именно то, что вы хотите, запустите его и удалите.2.
for /L %%i in (%start%,1,%end%) do ECHO %%i.mp3
это должно дать тебе начало.3.
… do copy /B "temp.mp3" "%%I.mp3" "temp.mp3"
, учитывая, что вы поставилиcd /D "C:tempmp3"
и> "temp.mp3" rem/
вышеfor
петли, которую предложил Стефан…4. Блестяще! Большое вам спасибо! немного подправить, и это шедевр… Спасибо!
5. @echo выключено setlocal включено расширение cd /D c:temp2mp3 set /p total=»Всего:» для /L %%i в (1,1,%всего%) DO ( > «песня%%i.mp3″ rem/ ) для /L %%i в (1,1,%всего%) DO ( set /p песня=»Номер песни:» set /p начало=»Начало:» эхо ! начинай! set /p end=»Конец:» эхо !конец! для /L %%i в (!начало!,1,!конец!) DO ( копировать /B «песня!песня!.mp3» «%%i.mp3» «песня!песня!.mp3» ) )