@ImVeryStupid

Как рекурсивно конвертировать файлы во всех папках и подпапках?

Как в виндовой (не 10) кмд віполнить вот єтот код
find . -type f -iname "*.webm" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3";' _ '{}' \;

???
источник
  • Вопрос задан
  • 439 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
По умолчанию никак не выполнить. Команды find нет в винде - это чисто никсовая команда.
Но можно поставить какой-нибудь портированный набор линуксовых утилит (например msys2 или что-то другое) и из-под него запустить эту команду.
В целом это не сложно переписать для cmd:
@echo off
for /f "tokens=* delims=" %%a in ('dir /b /s *.webm') do ffmpeg -i "%%a" -vn -ab 128k -ar 44100 -y "%%~dpna.mp3"

Сохраните код в батник в каталоге с файлами и запустите.
ffmpeg должен быть доступен для запуска из командной строки, если не доступен - то нужно прописать полный путь до него.
Код не тестировал.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ImVeryStupid Автор вопроса
Через powershell:
$files = Get-ChildItem -Recurse -Include *.webm
foreach ($f in $files){
   $inFile = '"' + $f.Fullname + '"'
   $outFile = $infile.replace('.webm','.webm.mp3')
   ffmpeg -i $inFile -vn -ab 128k -ar 44100 -y $outFile
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы