批处理命令双扩展修复
Batch command double extension fix
大家好我想问一下如何使用批处理脚本删除错误添加的第二个文件扩展名。
例如"test.aac.m4a" -> "test.m4a"
所以 last 扩展是我想要的正确扩展。
但这仅适用于
.aac.m4a
-> .m4a
and
.m4a.aac
-> .aac
我知道一些批处理脚本但是
ren *.aac.m4a *.m4a
不会 工作:(
另一件值得一提的事情是,这些双重扩展来自我的音乐软件MusicBee。
我在 m4a 文件上使用 mp4box 从 m4a 容器中提取原始 aac 流,这样我就可以在其他软件中对其进行编辑。
目前的语法是:
mp4box.exe -raw 1 "<URL>" -out "<URL>".aac
The "<URL>" is the variable MusicBee will replace with the file url.
但这会在 .m4a 之后添加 .aac 扩展名,我不知道如何替换它。 (当我重新打包文件“.aac -> .aac.m4a”时)
据我所知,MusicBee 只是替换变量并在激活时启动批处理代码,所以我认为其他批处理代码也可以。
是否有可能阻止这种双重扩展甚至发展?
一如既往地感谢任何帮助!!
谢谢,丹尼尔
这应该是可能的,但我不知道如何使用您的软件来防止双重扩展的发生。但是去掉不需要的中间部分相当容易 "extension".
如果您确实知道 none 的 .m4a 或 .aac 文件应该有多个点,那么您可以简单地执行以下操作:
ren *.m4a ???????????????????????????????????????????.m4a
ren *.aac ???????????????????????????????????????????.aac
只需确保您有足够的 ?
通配符来匹配文件夹中最长的名称。有关此解决方案为何有效的解释,请参阅 How does the Windows RENAME command interpret wildcards?。
但有时文件名在实际扩展名之前合法地有额外的点。如果是这种情况,那么下面的批处理脚本将只删除不需要的 .m4a 和 .aac 中间 "extensions"
@echo off
for /f "eol=: delims=" %%A in ('dir /b /a-d *.m4a.aac *.aac.m4a') do (
for %%B in ("%%A") do ren "%%A" "%%~nB%%~xA"
)
另一种选择是使用我的JREN.BAT regular expression file renaming utility。 JREN.BAT 是一个混合的 JScript/batch 脚本,可以在从 XP 开始的任何 Windows 机器上本地运行。理想情况下,脚本应放在 PATH 中包含的文件夹中。我喜欢将 c:\utils 用于所有非标准实用程序。
一旦您拥有JREN.BAT,那么您所需要的就是
call jren "\.(m4a|aac)(?=\.(m4a|aac)$)" ""
如果您了解正则表达式,并且花时间阅读内置的 JREN 帮助,那么您可以使用该实用程序做很多奇妙的事情。通过从命令行发出 jren /?
来访问帮助。如果您尚未配置控制台 window 以拥有一个大缓冲区,以便滚动查看之前的输出,您可能想要使用 jren /?|more
。
我使用 File Renamer Basic。
http://download.cnet.com/File-Renamer-Basic/3000-2248_4-10306538.html
免费
为了防止出现双重扩展名,我猜你没有以正确的方式相应地附加文件扩展名,但是我对 Music Bee 一点也不熟悉。
至于创建正确的批处理文件来执行您想要的操作,我使用了 Advanced File Renamer in the past for all sorts of renaming patterns such as your case. It's freeware too! The program has a fairly advanced feature that allows users to write custom scripts in JavaScript user guide here。甚至可以生成批处理脚本,为您的特定用例进行特殊重命名(如您在评论中所述)。
对于其他不太高级的用户,该程序有一个 GUI,可以轻松地进行批量重命名。
最重要的是,如果您像我一样避免安装第三方软件只是为了尽可能多地做一件事,该程序具有 便携 模式,不会不要挂钩到你的系统,这总是好的。
阅读手册和指南以获得更多信息。我的回答可能听起来有点太像广告了,但这只是因为它在很久以前帮助我重命名我的音乐。
这是 OP RapidFireArts 的屏幕截图,显示了 OP 如何使用该软件删除第二个文件扩展名。
大家好我想问一下如何使用批处理脚本删除错误添加的第二个文件扩展名。
例如"test.aac.m4a" -> "test.m4a"
所以 last 扩展是我想要的正确扩展。 但这仅适用于
.aac.m4a
-> .m4a
and
.m4a.aac
-> .aac
我知道一些批处理脚本但是
ren *.aac.m4a *.m4a
不会 工作:(
另一件值得一提的事情是,这些双重扩展来自我的音乐软件MusicBee。 我在 m4a 文件上使用 mp4box 从 m4a 容器中提取原始 aac 流,这样我就可以在其他软件中对其进行编辑。 目前的语法是:
mp4box.exe -raw 1 "<URL>" -out "<URL>".aac
The "<URL>" is the variable MusicBee will replace with the file url.
但这会在 .m4a 之后添加 .aac 扩展名,我不知道如何替换它。 (当我重新打包文件“.aac -> .aac.m4a”时)
据我所知,MusicBee 只是替换变量并在激活时启动批处理代码,所以我认为其他批处理代码也可以。
是否有可能阻止这种双重扩展甚至发展?
一如既往地感谢任何帮助!!
谢谢,丹尼尔
这应该是可能的,但我不知道如何使用您的软件来防止双重扩展的发生。但是去掉不需要的中间部分相当容易 "extension".
如果您确实知道 none 的 .m4a 或 .aac 文件应该有多个点,那么您可以简单地执行以下操作:
ren *.m4a ???????????????????????????????????????????.m4a
ren *.aac ???????????????????????????????????????????.aac
只需确保您有足够的 ?
通配符来匹配文件夹中最长的名称。有关此解决方案为何有效的解释,请参阅 How does the Windows RENAME command interpret wildcards?。
但有时文件名在实际扩展名之前合法地有额外的点。如果是这种情况,那么下面的批处理脚本将只删除不需要的 .m4a 和 .aac 中间 "extensions"
@echo off
for /f "eol=: delims=" %%A in ('dir /b /a-d *.m4a.aac *.aac.m4a') do (
for %%B in ("%%A") do ren "%%A" "%%~nB%%~xA"
)
另一种选择是使用我的JREN.BAT regular expression file renaming utility。 JREN.BAT 是一个混合的 JScript/batch 脚本,可以在从 XP 开始的任何 Windows 机器上本地运行。理想情况下,脚本应放在 PATH 中包含的文件夹中。我喜欢将 c:\utils 用于所有非标准实用程序。
一旦您拥有JREN.BAT,那么您所需要的就是
call jren "\.(m4a|aac)(?=\.(m4a|aac)$)" ""
如果您了解正则表达式,并且花时间阅读内置的 JREN 帮助,那么您可以使用该实用程序做很多奇妙的事情。通过从命令行发出 jren /?
来访问帮助。如果您尚未配置控制台 window 以拥有一个大缓冲区,以便滚动查看之前的输出,您可能想要使用 jren /?|more
。
我使用 File Renamer Basic。
http://download.cnet.com/File-Renamer-Basic/3000-2248_4-10306538.html
免费
为了防止出现双重扩展名,我猜你没有以正确的方式相应地附加文件扩展名,但是我对 Music Bee 一点也不熟悉。
至于创建正确的批处理文件来执行您想要的操作,我使用了 Advanced File Renamer in the past for all sorts of renaming patterns such as your case. It's freeware too! The program has a fairly advanced feature that allows users to write custom scripts in JavaScript user guide here。甚至可以生成批处理脚本,为您的特定用例进行特殊重命名(如您在评论中所述)。
对于其他不太高级的用户,该程序有一个 GUI,可以轻松地进行批量重命名。
最重要的是,如果您像我一样避免安装第三方软件只是为了尽可能多地做一件事,该程序具有 便携 模式,不会不要挂钩到你的系统,这总是好的。
阅读手册和指南以获得更多信息。我的回答可能听起来有点太像广告了,但这只是因为它在很久以前帮助我重命名我的音乐。
这是 OP RapidFireArts 的屏幕截图,显示了 OP 如何使用该软件删除第二个文件扩展名。