13

Я пытаюсь конвертировать более 20 файлов .avi в пакетном режиме, используя ffmpeg.

У меня есть следующее

@echo off.

for file in *.avi
do
   ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done

в моем .bat файле, но он не работает. Как я могу заставить его работать под ОС Windows. Да, и все файлы находятся в одной папке.

Сообщение об ошибке я получаю:

Файл был неожиданным в это время

1 ответ1

23

Ваш пакетный файл имеет неправильный формат для сценария Windows bat. Вместо этого ваш скрипт выглядит так, как будто он предназначен для Linux. Вам нужно будет изменить сценарий, чтобы использовать цикл for, который поддерживается оболочкой Windows.

Ниже приведен пример того, как выполнить эту задачу с помощью окна для цикла. Просто поместите следующую строку в ваш пакетный файл и переместите скрипт в тот же каталог, что и avi-файлы, а затем запустите его.

for %%A IN (*.avi) DO ffmpeg -i "%%A" "%%A.mpg"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .