Я написал несколько простых командных файлов, которые преобразуют любые аудио/видео файлы в формат .ogg (аудио). Например, музыка с youtube, которая находится в формате .flv. Вот сценарий:Как удалить расширение файла из имени файла?
set ogg_rate=1.3
set source_dir=f:\music
set dest_dir=f:\music\out
set my_temp=f:\temp
Rem Go to source dir
cd /d %source_dir%
for %%f in (*.*) do (
Rem Extract audio from avi file using ffmpeg
c:\encode\ffmpeg.exe -i "%source_dir%\%%f" "%my_temp%\%%f.wav"
rem Encode the audio with OGG encoder using 1.3 quality setting
cd /d %my_temp%
c:\encode\oggenc2.exe -q %ogg_rate% -o "%dest_dir%\%%f.ogg" "%my_temp%\%%f.wav"
rem delete all temp files
cd /d %my_temp%
del *.* /q
)
Это файл работает, но я не могу понять, как удалить ненужное расширение.
Например, если входной файл file.flv
затем после преобразования волны будет file.flv.wav
, то после преобразования его в .ogg
будет file.flv.ogg
.
Как получить file.ogg
(без .flv
)
КСТАТИ: вместо .flv
может быть .mp4
, .avi
или другое расширение.
Спасибо за ответ, но, strangly, %% ~ Н.Ф. не работает - он дает «неожиданным в это время» Я прочитал в ссылке, которую вы при условии, что он должен принимать имя файла только без расширения. Не уверен, почему это не работает, хотя .. – Mike
ОК, я понял. Мне нужно использовать %% ~ nf не везде, но где я хочу только имя файла. например: for %% f in (*. *) do ( c: \ encode \ ffmpeg.exe -i "% source_dir% \ %% f" "% my_temp% \ %% ~ nf.wav" cd/d% my_temp% c: \ encode \ oggenc2.exe -q% ogg_rate% -o "% dest_dir% \ %% ~ nf.ogg" "% my_temp% \ %% ~ nf.wav" ) – Mike
если вы вам нужен удобный список таких вещей, попробуйте 'for /?' –