В настоящее время я пишу скрипт для сжатия mp3 песен в каталоге.Это выглядит следующим образом.
SET BITRATE=128k
SET EXTENSION=mp3
SET MP3_CODEC=libmp3lame
for %%f in (.\*.%EXTENSION%) do (
ffmpeg -y -i "%%f" -acodec %MP3_CODEC% -ab %BITRATE% -id3v2_version 3 "%%f.%EXTENSION%"
del "%%f"
ren "%%f.%EXTENSION%" "%%f"
)
, который отлично работает при сжатии и удалении исходного файла.Но во время переименования нового файла я получаю ошибку The syntax of the command is incorrect
.
Изолированный код ошибки:
for %%f in (.\*.mp3) do ren "%%f" "%%f.mp3"
Я знаю способ переименованиякажется плохим, но переменная %%f
хранит в нем папку (то есть ". \ song.mp3"), поэтому я не могу изменить имя файла, только его расширение (которое должно быть таким же, чтобы ffmpeg работал).
Повторение ошибки
Установив ffmpeg в Windows, поместите файл X.mp3 и этот скрипт в папку и запустите скрипт.Он сожмет файл в новый файл с именем «X.mp3.mp3», удалит исходный файл «X.mp3» и потерпит неудачу во время переименования «X.mp3.mp3» в «X.mp3».
Если я запускаю эти команды вручную в консоли, это работает.