首页 > 解决方案 > Aperture 导出导入脚本

问题描述

随着 macOS Catalina 放弃对 Aperture 的支持,我需要将我的资料库移动到不同的应用程序。Mylio 有一个很棒的导入工具,它可以继承几乎所有的库结构和元数据,但会丢失一些调整。为了保留这些,我正在尝试编写一个 Apple 脚本来导出我的库中的所有图像(应用了调整),并在删除原始图像之前将它们重新导入到同一个项目中。

我想我几乎有了第一部分,导出所有图像。

tell application "Aperture"
  tell library 1
        set projects to (get every project)
        repeat with i from 1 to count of projects
            tell (item i of projects)
                export its every image version naming folders with folder naming policy ¬
                    "Project Name" using export setting ¬
                    "JPEG - Original Size" to (choose folder with prompt "Choose an export folder")
            end tell
        end repeat
  end tell
end tell

但是,当我尝试运行此脚本时,我不断收到错误消息

apertureExportImport.applescript:704:712:
execution error: Aperture got an error: Can’t make {project id "1ixjjya6T+Sb3pFmhRK8Fg"} into type project. (-1700)

我想问题出在网上,set projects to (get every project)但我在网上找不到任何例子来弄清楚这里还有什么要写的。

标签: applescriptdam

解决方案


我不使用Aperture,所以我只能进行有根据的猜测:

从错误消息中,我可以合理地确定这project是一个 AppleScript 对象,特别是一个元素,从你的脚本中,我会假设它属于一个library对象。在这种情况下,几乎可以肯定会有一个名为"projects"already defined 的复数元素形式,它指的是所有类型为的(即多个)元素的集合project

因此,以下行:

set projects to (get every project)

是有问题的,因为您正在尝试重新定义属于 AppleScript 的类对象。实际上,projects将是 的简写every project,所以这应该已经以您想要的方式定义,并且完全删除该行就足够了。

在单独的说明中,看起来(从您的脚本)该export命令可以传递一组对象作为其直接参数,您正在使用export its every image.... 假设这是有效的,那么它可能能够一次导出所有项目中的所有图像:

tell application "Aperture" to export every image version in every project of library 1 ¬
    naming folders with folder naming policy "Project Name" using export setting ¬
    "JPEG - Original Size" to (choose folder with prompt "Choose an export folder")

推荐阅读