我写了一些简单的批处理文件,可将任何音频/视频文件转换为.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
,那么在转换为wave后,它将为file.flv.wav
,然后在将其转换为.ogg
后,它将为file.flv.ogg
。< / p>
如何获取file.ogg
(不含.flv
)
顺便说一句:代替.flv
,它可以是.mp4
,.avi
或其他扩展程序。
答案 0 :(得分:2)
在for
声明中,尝试使用%%~nf
代替%%f
。 For statements in batch files有很多可以使用的替代选项:
for %%R in (*.*) do (
@echo %%~nR
)