如何从文件名中删除文件扩展名?

时间:2013-05-20 20:38:15

标签: batch-file

我写了一些简单的批处理文件,可将任何音频/视频文件转换为.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或其他扩展程序。

1 个答案:

答案 0 :(得分:2)

for声明中,尝试使用%%~nf代替%%fFor statements in batch files有很多可以使用的替代选项:

for   %%R in (*.*) do (
    @echo %%~nR 
)