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

如何用AppleScript监测指定文件名的新文件并触发重命名脚本?

替换静态延迟为文件监测的AppleScript方案

核心思路

用循环轮询监测目标文件的存在状态替代固定时长延迟,一旦文件出现在指定下载路径,立即触发重命名操作,之后继续重复下载-监测-重命名的流程。

完整脚本示例

-- 配置参数,根据需求修改
property downloadFolder : POSIX path of (path to downloads folder) -- 本地下载文件夹路径
property targetFileName : "原始报告.pdf" -- 在线服务输出的固定文件名
property newFileName : "每日报告_" & (do shell script "date +%Y%m%d") & ".pdf" -- 重命名后的文件名格式

-- 主流程:重复执行下载、监测、重命名
repeat
    -- 1. 执行原有的下载操作(替换成你自己的下载代码)
    log "启动报告下载..."
    -- your existing download code here
    
    -- 2. 等待目标文件出现(替代原有的delay 30)
    waitForFile(downloadFolder & targetFileName)
    
    -- 3. 执行重命名操作
    set originalFile to POSIX file (downloadFolder & targetFileName) as alias
    try
        tell application "Finder"
            set name of originalFile to newFileName
        end tell
        log "文件已重命名为: " & newFileName
    on error errMsg
        log "重命名失败: " & errMsg
    end try
    
    -- 可选:设置下一轮下载的间隔(按需调整)
    delay 60 -- 比如等待1分钟后启动下一次下载
end repeat

-- 自定义处理器:等待指定文件出现
on waitForFile(filePath)
    repeat until (do shell script "test -f " & quoted form of filePath & "; echo $?") = "0"
        log "等待目标文件 " & targetFileName & " 中..."
        delay 1 -- 每秒检查一次,可根据需求调整轮询间隔
    end repeat
    log "目标文件已找到!"
end waitForFile

代码说明

  • 配置参数:开头的property块定义了核心路径和文件名,直接修改对应值即可适配你的场景。
  • 主循环:repeat块实现了无限重复的下载-监测-重命名流程,若需要终止可在脚本编辑器中点击停止按钮。
  • 文件监测:waitForFile处理器通过shell命令test -f检查文件是否存在,每秒轮询一次,直到文件出现才退出循环,避免了固定延迟的低效或超时问题。
  • 重命名容错:用try块包裹重命名操作,可处理文件已存在等异常情况。

替代方案:被动式文件夹动作

如果不需要主动触发下载,仅需被动监测下载文件夹,一旦目标文件出现就自动重命名,可使用文件夹动作:

-- 保存为文件夹动作脚本,绑定到下载文件夹即可生效
on adding folder items to theFolder after receiving addedItems
    property targetFileName : "原始报告.pdf"
    property newFileNamePrefix : "每日报告_"
    
    repeat with anItem in addedItems
        set itemName to name of (info for anItem)
        if itemName = targetFileName then
            set currentDate to do shell script "date +%Y%m%d"
            set newName to newFileNamePrefix & currentDate & ".pdf"
            tell application "Finder"
                set name of anItem to newName
            end tell
            log "已自动重命名文件: " & newName
        end if
    end repeat
end adding folder items to

使用步骤:打开「脚本编辑器」,粘贴代码后保存为.scpt文件;在Finder中右键点击下载文件夹→「服务」→「文件夹动作设置」,添加该脚本并启用。

内容的提问来源于stack exchange,提问作者Silas Ellery

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:25:27