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

如何在后续AppleScript中引用Automator复制的文件夹以删除空文件夹?

解决Automator工作流中AppleScript指向复制后文件夹的问题

别担心,新手接触Automator和AppleScript难免会有困惑,我来一步步帮你搞定这个需求!

先理清楚你的工作流顺序

首先确保你的Automator应用程序工作流是按以下顺序排列动作的:

  • 接收Finder项目:设置为“作为输入”,这样拖拽的文件夹会被捕获
  • 复制Finder项目:选择你想要把文件夹复制到的目标位置(比如桌面),这个动作会输出复制完成后的新文件夹,作为后续动作的输入
  • 设置文件夹颜色:用Automator自带的“设置文件夹图标颜色”动作(如果是要设置文件夹内部背景色,后面我可以补充,但先聚焦核心需求)
  • 运行AppleScript:这就是我们要修改删除空文件夹脚本的地方

调整删除空文件夹的AppleScript

你原来的脚本是指向固定路径的,现在要改成接收Automator传递过来的复制后的文件夹。把下面的代码替换掉你原来的脚本片段:

on run {input, parameters}
    -- 从Automator的前一步获取复制好的文件夹
    tell application "Finder"
        set copiedFolder to item 1 of input
        -- 获取这个文件夹下所有层级的子文件夹
        set allSubfolders to every folder of entire contents of copiedFolder
        
        -- 遍历每个文件夹,删除空的
        repeat with aFolder in allSubfolders
            if (count of items in aFolder) is 0 then
                delete aFolder
            end if
        end repeat
    end tell
    -- 返回结果给后续动作(如果有的话)
    return input
end run

关键修改点说明

  1. on run {input, parameters}:这是Automator中AppleScript的标准入口,input变量会自动包含前一个动作(也就是“复制Finder项目”)输出的内容——也就是你刚复制好的文件夹。
  2. 替换固定路径:把原来的folder "$CopiedFolderHere"换成copiedFolder,这个变量就是从input里提取的新文件夹对象,完美指向你刚复制的目标。
  3. 遍历删除逻辑:保留了你原来的核心逻辑,只是把目标文件夹换成了动态获取的复制后文件夹。

额外小提示

  • 如果你要设置的是文件夹内部的背景颜色(不是标签颜色),可以在“复制Finder项目”之后添加一个额外的AppleScript动作,用这段代码设置:
on run {input, parameters}
    tell application "Finder"
        set targetFolder to item 1 of input
        set background picture of targetFolder to (path to library folder from user domain as string) & "Desktop Pictures:Solid Colors:Blue.png"
        -- 你可以替换成其他颜色的路径,或者自定义图片路径
    end tell
    return input
end run

内容的提问来源于stack exchange,提问作者Ian Lloyd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:12:43