从名称

时间:2016-03-19 18:31:36

标签: batch-file

所以,我试图使用名为Super的程序将一堆OGG文件转换为M4A。唯一的问题是该程序会添加您在源扩展名后尝试转换为的扩展程序。

因此,如果我将名为Keyboard.ogg的文件转换为M4A文件,它会将其转换为M4A,但生成的文件名为Keyboard.ogg.M4A

我想要做的是转换完成后,我想对以.ogg.M4A结尾的每个文件运行命令或批处理脚本,以便结果为Keyboard.m4a而不是Keyboard.ogg.M4A (文件扩展名应该是小写的,因为我用于开发视频游戏的程序需要.ogg.m4a个文件用于导出(因为它使用OGG用于PC导出,M4A用于移动导出)和我认为它可能区分大小写。)

我已经尝试了解决方案here,但在使用%%~nf时,它只删除.M4A部分(而不是.ogg.M4A),如果我要重命名我{&#39} d回到1号广场。

2 个答案:

答案 0 :(得分:1)

假设您的文件名中没有任何其他点包含.ogg.M4A以外的任何其他点,那么您只需要一个REN命令。

ren *.ogg.M4A ??????????????????????????????.m4a

请务必使用足够的?来匹配文件集中最长的名称。

有关REN如何处理通配符的完整说明,请参阅How does the Windows RENAME (REN) command interpret wildcards?

答案 1 :(得分:0)

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
FOR /f "tokens=1*delims=" %%a IN (
 'dir /b /a-d "%sourcedir%\*.ogg.M4A" '
 ) DO (
 FOR %%b IN ("%%~na") DO (
  ECHO REN "%sourcedir%\%%a" "%%~nb.m4a"
 )
)

GOTO :EOF

您需要更改sourcedir的设置以适合您的具体情况。

为了测试目的,所需的REN命令仅为ECHO在您确认命令正确后,将ECHO(REN更改为REN以实际重命名文件。

获取适合掩码“* .ogg.m4a”的源目录中每个文件的名称

使用filenamename的名称部分,仅使用名称部分+所需的扩展名重命名。