使用 Keyboard Maestro 简化文件处理流程

这个 Keyboard Maestro 简化的流程是:
根据当前网页标题创建文件夹,将下载的网页文件移动到创建好的文件夹内。

本文主要介绍了如何在 Keyboard Maestro 中监控文件夹变化、如何使用 token、如何自动化 Macro 开启/关闭。

看起来,这个 Keyboard Maestro 流程节省的时间可能不多
但节省了巨多脑细胞,想想 ChatGPT 4 图像识别的价格 :moneybag:
还将肩颈从紧张的鼠标点选、键盘敲击动作中释放出来
简直不要太美好 :smiley:

根据当前网页标题创建文件夹

流程1:获取当前网页标题
方案:查找了一下,发现 Keyboard Maestro 并没有直接获取 Chrome 浏览器网页标题的动作

Google 了一下:“Keyboard Maestro get Chrome title”,发现需要使用 token 的方式进行获取,使用的 token 是 %ChromeTitle%

原理是:

它通过 AppleScript 与浏览器通信来实现这一点,因此只能使用支持兼容 AppleScript 的浏览器,目前仅限于支持 Safari 或 Chrome AppleScripts 的浏览器,其中包括 Safari、Chrome、Brave、Vivaldi、Edge 及其开发版本。

具体查看官方文档:token:WebBrowserTokens [Keyboard Maestro Wiki]

这样就把浏览器标题内容保存到变量 name

流程2:处理文件名
分别处理不需要的文字和特殊字符

流程3:创建文件夹
在文件夹名字中加上了日期 token,%ICUDateTime%MMddHHmmss%,生成类似 02031019 这样的日期,不包括年份。

完整的日期 token 介绍,参考这里:token:ICUDateTime [Keyboard Maestro Wiki]

将下载的网页文件移动到创建好的文件夹内

新建一个 Macro 来处理移动文件流程
我日常使用 SingleFile 来保存网页,默认的保存地址是桌面。
这个 Macro 用来将保存的网页移动到刚才创建的文件夹中。
注意这是一个全局 Macro
image

流程1:设置文件夹触发器
当桌面文件夹添加了一个新文件时

adds an item 表示当添加一个文件时触发
ignore partial or changing files 表示忽略部分或正在更改的文件,例如,如果正在下载或复制文件到文件夹中,触发器将等待,直到下载/复制完成,并且可以忽略部分文件(具有已知扩展名的文件)为“进行中”文件)。
完整的介绍,参考这里:trigger:Folder [Keyboard Maestro Wiki]
Minja 的这篇文章介绍了如何使用 Keyboard Maestro 代替 Hazle 实现文件自动化:《1-4 文件自动化小论》

流程2:移动文件
从触发器中获取文件名,用来在后续移动文件时指定文件名

在 Folder 触发器官方文档中,trigger:Folder [Keyboard Maestro Wiki]
告诉我们 %TriggerValue% 文本标记包含添加或删除的文件的路径
使用 Get File Attribute 动作获取文件名,并保存到变量 filename
关于 Get File Attribute 完整介绍,参考这里:action:Get File Attribute [Keyboard Maestro Wiki]

%Variable%filepath% 是根据网页标题创建的文件夹。在 Keyboard Maestro 中变量一处创建可以在其他任意位置使用。
%Variable%filename% 是保存的网页文件名。
通过 %Variable%filepath%%Variable%filename% 即可拼接出目的路径。

优化

现在整个流程制作完毕,只要按下快捷键,Keyboard Maestro 就会执行以下流程

  • 获取网页标题
  • 创建文件夹
  • 将 SingleFile 保存的网页移动到文件夹中

但现在有个小问题,通过其他途径保存到桌面的文件也会被移动
所以需要将移动文件的 Macro 改为只有在保存网页时执行,其他时候关闭。

在按下快捷键时,打开 Macro

移动完文件后,关闭 Macro

小结

以上就是我今早临时写的 Keyboard Maestro 流程分享。
神奇的连接起来 Chrome 浏览器、macOS 文件系统、SingleFile 插件、信息管理技术(文件名包含日期)。
写到这里的时候,忽然想起来,Keyboard Maestro 还可以做得更多:
在保存网页前用 Keyboard Maestro 精简一下网页 :+1:
具体可以参考这两篇文章:
《在 Safari 浏览器中一键清理知乎网页广告(附自动化)》
《保存网页时一键裁切不必要的部分》

2 Likes

使用 Keyboard Maestro 简化文件处理流程继续讨论:

嗯,前部分也是这么做的,后部分移动很有启发!

1 Like

很棒的用例
我也有一个处理网页保存的流程,不过我习惯存为 PDF 格式,于是用 Keyboard Maestro 压缩并添加来源链接:1-4-1 系统级文件自动化一例:预处理 PDF - Keyboard Maestro 进阶指引

1 Like