Аудио преобразование: вложенные циклы в пакетном файле не дают вывода - PullRequest
0 голосов
/ 30 декабря 2018

Я конвертирую пару тысяч .wem файлов в формат .wav.Поскольку .wem - неясный формат файла, я решил преобразовать файлы с помощью SoX.

Стандартная установка SoX включает в себя пакетный файл для массового преобразования необработанных файлов, который я с радостью использовал.Я изменил пример, чтобы исключить необходимость перетаскивать файлы в командный файл, используя вложенные циклы.

cd %~dp0
mkdir converted
for %%f in (*.wem) do FOR %%A IN (%*) DO sox -t raw -e signed-integer -b 16 -c 1 -r 44100 %%A "converted/%%~nA.wav"
pause

Он просто создает каталог / convert и затем выводит команду,каталог, а затем переходит (предположительно) к следующему файлу.К сожалению, открытие каталога / convert показывает, что вообще ничего не было сгенерировано, и преобразование заняло намного меньше времени, чем следовало бы.Ранее я тестировал его с файлами .wem, и он отлично конвертируется, поэтому я не думаю, что это имеет какое-либо отношение к формату.Скорее всего, это как-то связано с моим любительским программированием пакетных файлов.Есть идеи?

1 Ответ

0 голосов
/ 30 декабря 2018

Решено, благодаря Mofi.

Законченный код:

cd %~dp0
mkdir converted
for %%I in (*.wem) do sox -t raw -e signed-integer -b 16 -c 1 -r 44100 "%%I" "converted\%%~nI.wav"
pause

Кажется, я действительно мог бы сделать это за один цикл.

...