使用Bulk Rename Utility批量重命名音频轨道的问题
批量重命名音频文件脚本修正方案
原脚本的问题在于直接将下划线后的内容整体移到最前面,没有保留曲目编号的前置位置。要实现「曲目编号. 艺术家_歌曲名」的格式,需要先分离曲目编号前缀,再单独交换歌曲名与艺术家的位置。
修改后的脚本如下:
var char2find = "_"; // 定位曲目编号前缀的结束位置(比如"10. "的最后一位) var prefixEndIndex = name.indexOf(". ") + 2; // 提取曲目编号前缀 var prefix = name.substr(0, prefixEndIndex); // 提取编号后的歌曲名+艺术家部分 var rest = name.substr(prefixEndIndex); // 找到rest里最后一个下划线的位置 var underlineIndex = rest.lastIndexOf(char2find); // 分离艺术家和歌曲名 var artist = rest.substr(underlineIndex + 1); var songName = rest.substr(0, underlineIndex); // 拼接成目标文件名 newName = prefix + artist + char2find + songName;
逻辑说明:
- 先通过
indexOf(". ")定位曲目编号与歌曲名的分隔点,+2是为了包含". "这两个字符,确保前缀完整提取(比如示例中的"10. ")。 - 将文件名拆分为「编号前缀」和「歌曲名_艺术家」两部分,只对后半部分做位置交换。
- 最后把前缀、艺术家、下划线、歌曲名按目标格式拼接,得到正确的文件名。
测试示例:
输入:10. Black Hole Sun_Soundgarden
输出:10. Soundgarden_Black Hole Sun
内容的提问来源于stack exchange,提问作者agon024
相关产品推荐
相关产品推荐

