Если вы хотите использовать вывод soxi -D %%f
в качестве параметра командной строки для sox
, вот как вы можете это сделать:
FOR %%f IN (*.ogg) DO CALL :runsox "%%f"
GOTO :EOF
:runsox
soxi -D %1>tmpfile
SET /P decvalue=<tmpfile
sox %1 %1 pad 0 %decvalue%
sox %1 %1 repeat 10
Как видите, команды внутри цикла были перенесены в подпрограмму, которую цикл вызывает сейчас. Кроме этого, вывод soxi
перенаправляется в файл, который затем считывается в переменную, которая, в свою очередь, используется для передачи значения в sox
.
Это на самом деле из-за переменной, которую мне пришлось перенести команды за пределы цикла. Он будет работать некорректно внутри цикла, если не включено отложенное расширение и не используется другой синтаксис для обращения к переменной. Я предпочел, чтобы это было реализовано, как указано выше.