显示特定文件扩展名的特定快速操作

Show specific Quick Action for specific file extension

我是 Applescript 和 Automator 的新手。例如,我正在尝试构建一个快速操作,它能够根据文件类型提出不同的功能。 如果文件是 test.sh 快速操作将是 a 和 b 如果文件是 document.pdf 动作将是 c 和 d

我成功创建了我的动作,但没有使它们特定于文件类型。我不知道从哪里开始,因为我看不到任何使输入成为条件的可能性,例如如果 input = .sh 执行 a 和 b。

任何关于如何进行的帮助将不胜感激。

谢谢,

查看 QuickAction 的图像后,除了选定的 PDF [=21] =]Finder.

中的文档

第一个 action 应该是 Set Value of Variable action 所以它 contents 可以使用 Get Value of Variable 多次检索,但是 Filter Finder Items actions 需要处理不同的 文件类型 ,然后是每个 文件类型 [=] 的适当 actions 42=].

您还可以使用 忽略此操作的输入 复选框选项action 将其从上一组 actions.

中分离出来

下图显示了我所指内容的粗略示例:

快速操作是特定于类型的,因此一般来说,最佳做法是为每种文件类型编写一个快速操作。这些快速操作只会在选择该类型的文件时出现在 Finder 中。

在许多情况下,您可以在 Automator 中创建或编辑快速操作时指定文件类型。例如,要创建仅在选择 PDF 文件时出现的快速操作,请将工作流顶部的下拉菜单设置为 "Workflow receives current PDF files in Finder":

然后完成并保存快速操作。

如果您想更精细地控制“快速操作”'sees' 的文件类型,您可以编辑其 info.plist 文件并更改其文件类型。保存快速操作后,导航至 Finder 中的 ~/Library/Services(即主文件夹的 Library 文件夹中的 Services 文件夹)。找到带有快速操作名称的包(例如,"Open in Preview"),按住 Control 键并单击它以获取上下文菜单,选择“显示包内容”,然后打开“内容”文件夹。您会看到以下内容:

在纯文本编辑器中打开 info.plist 文件——我更喜欢 BBEdit,但如果你确保 'rich text' 已关闭,TextEdit 将正常工作——并查找 NSSendFileTypes 键。它将类似于以下内容:

    <key>NSSendFileTypes</key>
    <array>
        <string>com.adobe.pdf</string>
    </array>

com.adobe.pdf 是统一类型标识符 (UTI),您可以在任何系统识别的 UTI 中添加或替换。这是 system-declared UTIs 的列表,但应用程序可以声明自己的 UTI 并向系统注册它们,因此此列表不一定详尽无遗。例如,如果您希望快速操作将 PDF 和图像文件都发送到预览,您可以在系统声明的 UTI 页面上搜索并找到图像的基本 UTI 是 public.image,然后编辑 info.plist 阅读:

    <key>NSSendFileTypes</key>
    <array>
        <string>com.adobe.pdf</string>
        <string>public.image</string>
    </array>

保存此选项,现在只要您选择 PDF 图像,就会出现快速操作。请注意,如果您手动编辑 info.plist 文件,如果您在 Automator 中编辑并保存快速操作,它可能会被覆盖。

Finder 中只会显示前两个相关的快速操作window;任何额外内容都将折叠在 more 按钮下。要更改顺序以便您最常用的快速操作排在最前面,请打开系统偏好设置,单击扩展项目,打开 Finder 部分,然后将右侧列表中的项目拖动到您喜欢的顺序。