-1

我编写了一些简单的批处理文件,可以将任何音频/视频文件转换为 .ogg(音频)格式。例如 .flv 格式的 youtube 上的音乐。这是脚本:

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.

如何获得file.ogg(没有.flv

顺便说一句:可以代替.flv.mp4.avi或者其他扩展名。

4

1 回答 1

2

在您的for声明中,尝试使用%%~nf而不是%%f. 对于批处理文件中的语句,您可以使用很多替换选项:

for   %%R in (*.*) do (
    @echo %%~nR 
)
于 2013-05-20T20:45:00.857 回答