如何修改FileBot脚本使重复文件存入DUPLICATES文件夹且不覆盖原有文件
FileBot 分类脚本重复文件处理修改方案
最终可用脚本
你可以直接使用下方修改完成的脚本,仅需按需调整duplicatePath变量的路径为你想要存放重复文件的目录即可:
{ // 基础分类存储根路径(与原有逻辑保持一致) def basePath = 'Z:/Multimedia UNIQedumx/@cinedriveonline/' // 生成分类子目录(与原有分类逻辑完全一致) def genreDir = any { def order = ['Animation': 1, 'Musical': 2, 'Documentary': 3, 'Family': 4, 'History': 5, 'Science Fiction': 6, 'Horror': 7, 'Fantasy': 8, 'War': 9, 'Western': 10, 'Action': 11, 'Comedy': 12, 'Crime': 13, 'Thriller': 14, 'Adventure': 15, 'Mystery': 16, 'Romance': 17, 'Drama': 18].withDefault{ 100 } def genreMap = ['Science Fiction': 'Sci-Fi','Action': 'Acción','Animation': 'Animación','Ciencia ficción': 'Sci-Fi'] def sortedGenres = genres.toSorted{ order[it] }*.replace(genreMap) sortedGenres.first() } { 'No Genre' } // 生成目标文件名(与原有命名规则完全一致) def targetFileName = "${plex.name} - [${vf}] [${mbps}] - @cinedriveonline" // 拼接得到标准分类目标路径 def standardTargetPath = basePath / genreDir / targetFileName // 重复文件存储目录,可自行修改路径 def duplicatePath = 'Z:/Multimedia UNIQedumx/DUPLICATES/' // 路径存在校验:标准路径不存在则按规则分类存储,存在则统一移动到重复文件夹 return !standardTargetPath.exists() ? standardTargetPath : duplicatePath / targetFileName }
逻辑说明
- 原有按电影类型分类的逻辑、文件命名规则完全保留,不会影响正常非重复文件的分类结果
- 新增路径存在判断逻辑:脚本会先检查按分类规则生成的目标路径是否已经存在文件
- 若目标路径不存在文件,会正常将文件移动到对应分类目录;若目标路径已存在文件,会自动将文件移动到你指定的DUPLICATES文件夹,既不会覆盖原有文件,也不会残留文件在源目录
- 如果需要避免DUPLICATES文件夹内也出现同名文件覆盖,可以将最后一行的返回逻辑修改为如下格式,自动给重复文件加时间戳后缀:
return !standardTargetPath.exists() ? standardTargetPath : duplicatePath / "${now.format('yyyyMMddHHmmss')}_${targetFileName}"
内容的提问来源于stack exchange,提问作者Abdias Rivera Bautista
相关产品推荐
相关产品推荐

