You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppleScript移动文件时如何将重复文件移入子文件夹避免自动加copy后缀

AppleScript 按文件名前缀分类并自动归档重复文件方案

需求背景

  • 原有脚本逻辑:根据文件名前6个字符,将选中文件夹内的文件移动到对应名称的子文件夹;若对应子文件夹已存在则直接移入
  • 原有默认行为:若目标子文件夹内存在同名文件,系统会自动给新移入的文件添加copy后缀,该逻辑为系统默认行为,非自定义脚本逻辑
  • 目标需求:执行文件移动操作前,先将目标文件夹内已存在的同名文件移动到目标文件夹下名为_alt的子文件夹中,同时保留新旧两份文件,避免系统自动添加copy后缀

修改后可直接使用的脚本

set mgFilesFolder to (choose folder with prompt "Choose folder…")

tell application "Finder"
    -- 仅获取选中文件夹根目录下的文件,排除已生成的子文件夹
    set fileList to every file of mgFilesFolder
    
    repeat with thisFile in fileList
        set fileName to name of thisFile
        -- 提取文件名前6位作为分类文件夹名称
        set targetFolderName to text 1 thru 6 of fileName
        
        -- 分类文件夹不存在则新建
        if not (exists folder targetFolderName of mgFilesFolder) then
            make new folder at mgFilesFolder with properties {name:targetFolderName}
        end if
        set targetFolder to folder targetFolderName of mgFilesFolder
        
        -- 检查目标分类文件夹下是否存在同名文件
        if exists file fileName of targetFolder then
            -- _alt归档文件夹不存在则新建
            if not (exists folder "_alt" of targetFolder) then
                make new folder at targetFolder with properties {name:"_alt"}
            end if
            set altFolder to folder "_alt" of targetFolder
            -- 将原有同名文件移入_alt文件夹归档
            move file fileName of targetFolder to altFolder
        end if
        
        -- 移动当前待处理文件到分类文件夹,不会触发系统自动加copy后缀的逻辑
        move thisFile to targetFolder
    end repeat
end tell

逻辑说明

  • 移除了原脚本两次遍历文件的冗余逻辑,单次遍历即可完成全流程操作,运行效率更高
  • 移动文件前增加同名文件校验:发现重复文件时,先在对应分类文件夹下创建_alt子文件夹(若未存在),将原有重复文件移入_alt归档后再移动新文件
  • 遍历文件时自动过滤根目录下的所有文件夹,不会误操作新建的分类文件夹、归档文件夹

内容的提问来源于stack exchange,提问作者Achim Gehrig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:57:26