批处理文件删除文件扩展名

时间:2013-12-29 06:22:12

标签: batch-file

所以我制作了一个批处理文件来帮助我使用MKVToolNix从MKV文件中提取视频,然后使用mp4box将h264文件重新编码为MP4进行视频编辑。它的效果非常好,它的外观如下:

for %%a in (*.mkv) do "C:\Program Files (x86)\MKVToolNix\mkvextract.exe" --ui-language en tracks "%%a" 0:"%Sources%\h264\%%a.h264"
for %%a in (*.h264) do mp4box.exe -add "%%a:fps=23.976" "%Sources%\%%a.mp4"

问题是,第一行将使用< filename> .mkv.h264提取文件然后当我使用mp4box将文件编码为MP4文件时,它出现为< filename> .mkv.h264.mp4

有没有办法对它进行编码,因此它会删除前2个扩展名,只留下.MP4?在周围搜索并找不到我事后的事情的答案(我找到的所有内容都是为了删除最后一个对我没有帮助的扩展名。)

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在指定输出文件的名称时,使用~n修饰符提取不带扩展名的文件名。

for %%a in (*.mkv) do "C:\Program Files (x86)\MKVToolNix\mkvextract.exe" --ui-language en tracks "%%a" 0:"%Sources%\h264\%%~na.h264"

for %%a in (*.h264) do mp4box.exe -add "%%a:fps=23.976" "%Sources%\%%~na.mp4"