付费栏目万字解析

「万字解析」是体验少数派付费栏目内容的最佳方式。我们希望用一万字的篇幅,系统、深度地分享有价值的内容,让少数派读者可以享受获得新知的愉悦。

本期「万字解析」内容选自《生产力超频:学得会的快捷指令》。《生产力超频:学得会的快捷指令》面向所有对快捷指令有兴趣的读者,尤其是一直想入门而不得其法的用户,拒绝炫技,只讲重点,真正做到「零基础学会快捷指令」,让快捷指令成为学得会、用得上的效率工具。

 

相信使用过苹果设备的你,或多或少对快捷指令都有所了解。这篇文章是为了解决大家对快捷指令 3W:

  • What:什么是快捷指令;
  • Why:为什么选择快捷指令;
  • When:在什么情况下使用快捷指令

了解过这些问题,在后续的文章中带着这样的共识,可以帮你更高效地汲取知识。

因此,无论你对快捷指令有多深的掌握,都希望你可以耐心读完这篇文章。

什么是快捷指令?

快捷指令的前身是 iOS 平台一款名为 Workflow 的自动化工具,它可以通过对各动作的简单排列来实现用户想象中的各种功能。你可以将其理解为一个图形化的简易编程工具,任何人都可以用它来制作属于自己的「程序」。这款应用一经面世,就吸引了众多 Power User。

Workflow 于 2017 年被 Apple 收购,并在次年的 iOS 12 中成为系统内置的应用 Shortcuts(捷径 / 快捷指令)。并在 2021 年的 macOS Monterey 中登录了 macOS 平台。

经过多年的发展,快捷指令已然成为 Apple 生态的一大「神器」,配合上第三方应用的支持,它可以替你省下很多不必要的时间,极大地提升工作效率。

以我此前写的 快速拼图 为例,就是结合了 Yoink、快捷指令和 Keyboard Maestro 三个工具来实现的。在文章发布后,我甚至还推倒重做了一版(会在后续文章中介绍),省去了拖拽的步骤,直接就能生成拼图。

快捷指令的界面与用途

快捷指令能够得到许多人的喜爱,离不开它简单直观的逻辑与设计。从界面来说,应用直观地分为了「快捷指令」「自动化」和「快捷指令中心」三个板块,分别对应「手动使用与编写」「自动运行」和「查找范例」的需求。

快捷指令

在「快捷指令」界面,所有快捷指令都会以圆角矩形的方式来排列。

在 iOS / iPadOS 上直接点击即可运行对应的快捷指令,点击矩形右上角的 ··· 即可编辑。长按即可展开菜单,快速进行重命名、分享等操作。在 macOS 上,点击矩形右上角的 ▶︎ 即可运行,双击矩形则是打开编辑窗口,右键点击展开菜单。

在「快捷指令」界面返回上一层,则可以按照分类、文件夹来管理不同的快捷指令。

点击「快捷指令」界面右上角的 + 号即可创建一个新的快捷指令,你可以通过屏幕下方(iOS)或右侧(iPadOS & macOS)的动作列表来找到想要的动作,直接拖拽到快捷指令空白处即可应用。

通过不同动作的排列组合,就能实现快捷指令的「千变万化」。

在动作列表中,你可以使用搜索分类推荐三种方式找到想要的动作。对于快捷指令新人来说,我更推荐使用分类和推荐,它可以帮你迅速了解快捷指令的分类逻辑、具体有哪些动作。

而对于有一定基础的朋友,搜索功能则能帮你极大地提升快捷指令的编写效率。

如果你暂时没有快捷指令的基础,看到这或许会有点晕。别担心,这里只是为了让你了解快捷指令各界面的作用,后续会有详细的文章介绍编写、分类相关的内容。

自动化

在「自动化」中,我们可以创建不同的条件,并在条件下由系统自动运行特定动作。

听起来有点绕?没关系,举个简单的例子:

你每天 23:45 上床睡觉,会打开睡眠模式,并播放一段助眠音乐,为了节省手机电量,你还会打开低电量模式。同时,为了避免没开闹钟睡过头,还会再检查一遍 8:00 的闹钟是否打开

在没有快捷指令自动化的情况下,我们每天至少需要 2-3 分钟去处理这一段琐事。而快捷指令自动化的意义,则是让这些操作在瞬间自动完成。你只需要按照下图这样设置:

如此一来,你要做的只有准时上床睡觉。手机会自动为你播放助眠音乐、自动设定低电量模式和睡眠模式、并帮你打开 8:00 的闹钟。

上面提到的场景只是一个假想场景,在实际生活中,自动化还可以帮我们补足 iOS 的系统短板。比如我在 这篇文章 里,就利用快捷指令自动化在 iOS 上实现了「节假日闹钟」的自动切换。

自动化在应对具有重复性希望解放双手的场景下尤为高效。因此,想要用好自动化,我们首先应该明确自己的需求。虽然看似复杂,但别担心,后续的文章带你一步步上手自动化。

快捷指令中心

你可以将「快捷指令中心」理解为一个由 Apple 官方出品的快捷指令库。与少数派的 Shortcuts Gallery 类似,都收纳了许多或实用,或有趣的快捷指令。

对于刚接触快捷指令的人来说,官方的「快捷指令中心」不但可以帮你快速填充自己的快捷指令库,体验快捷指令的乐趣,也可以为你提供诸多优秀的快捷指令范本以供参考学习。

零基础的你,如果想要了解快捷指令的编写逻辑,那么不妨在快捷指令中心里找一些范例,然后顺着它的动作编排演练一遍,然后修改其中的动作、参数,相信你会很有收获。

为什么选择快捷指令?

对于这个问题,每个人会给出不同的答案。有的人认为,「折腾」快捷指令是非常酷的事情;有的人则是希望用快捷指令来提升自己的效率……这个答案并无对错之分,每个人都可以有自己的取向。

而我认为,快捷指令就像一把瑞士军刀,它未必能把每件事做到极致,但有它一个就可以应对生活中诸多琐碎的需求。也就是说,我们之所以选择快捷指令,是因为它能帮我们解决许多零碎的问题

打个比方,当你需要将 20 张照片转换为 PDF 文本,摆在你面前的有这么几个选项:

  • 用 Word / Pages 排列图片并导出为 PDF;
  • 用网页版工具将图片打包成 PDF;
  • 下载一个专门的软件来转换。

这三个方法都各有优缺点,Word / Pages 的方法自由度最高,但排版却非常麻烦;网页工具最方便,但往往会有各种限制,比如文件大小、数量,甚至还会有水印;下载软件或许比较「一劳永逸」,但这毕竟只是个琐碎的需求,下载软件或许显得太「大动干戈」。

当我第一次遇到照片转 PDF 的情况时,我选择了快捷指令。花不到 3 分钟时间简单写了一个「能用就行」的版本,随后只需要选择图片 > 运行快捷指令,就会自动生成一个 PDF 文件。在后续遇到类似情况的时候,我甚至还可以直接复用。在应对这种琐碎

这个快捷指令的逻辑非常简单:导入照片 > 制作 PDF > 保存 PDF 。相信所有人都能想到这个逻辑,但或许出于对快捷指令的不熟悉,或是未形成用快捷指令解决问题的思维,往往容易绕了远路。

至此,我们将面对本栏目的第一个核心内容:编程思维,或者更应景地说——快捷指令思维

想要用好快捷指令,我们就需要有将需求化整为零的能力。打个比方,把大象塞进冰箱需要三步:

  • 打开冰箱门;
  • 把大象塞进去;
  • 关上冰箱门。

而其中省略的那些步骤,则可以根据每个人的习惯自由调整。代入到上文提到的「图片转 PDF」中也一样:

  • 选择需要制作成 PDF 的图片;
  • 由工具制作成 PDF;
  • 将 PDF 导出。

这是最基础的思路,而如果我们想要让图片按照特定的顺序来排列,或是导出 PDF 时将其命名为20 张图片.pdf,又该怎么办呢?应该在哪两步之间做些什么?相信你的心里已经有了答案。

不过,毕竟是思维层面的东西,很难在一朝一夕养成。而快捷指令本身就是一个适合锻炼编程思维的工具,你可以通过自己编写快捷指令、学习他人的编写思路来锻炼自己。

而想要更快速地形成这种思维,不妨在日常生活中多对身边的事物做一些思考练习,比如「通过地铁闸机的时候,闸机都做了什么」「给老板买一杯咖啡,一共分多少步」之类的。

最后,回到节标题的问题:我们为什么要选择快捷指令?

一方面,它丰富的功能可以应对工作、生活、学习中的许多需求,节约我们在搜索引擎找「XX 工具」的时间,也让我们避免了「为简单需求下载软件」这样舍近求远的行为。

另一方面,快捷指令需要编程思维才能更好地运用,而它本身也是一个优秀的思维锻炼工具。即便是零基础的人,在拆解吃透几个简单的快捷指令后,也能很快明白它背后的逻辑,从而编写出属于自己的快捷指令。

在什么情况下使用快捷指令

正如前文所说,快捷指令就像是一把瑞士军刀,它可以做很多事情,但未必能做到极致。因此,明确在什么情况下适合使用快捷指令,往往能帮我们事半功倍地解决问题。

我们首先要知道,使用快捷指令的目的是为了提高效率,节省时间。同样的一件事,如果用快捷指令来做并不能省下时间,或者不能带来更高的效率,那么就没必要非得用快捷指令了。

打个比方,当你想要查询人民币与美元的汇率时,快捷指令同样可以借助 API 来实现查询,但它的效率远不如直接用系统自带的「聚焦」搜索方便。

对于有频繁查询需求的人来说,单独下载一个汇率 app,甚至还能有标记常用币种、汇率变化推送等功能。单从效率上来说,快捷指令并不占优。

但这并不意味着「快捷指令查汇率」是一个伪命题。相反,你可以将「查汇率」的动作与其他动作相结合,做一个「聚合播报」,并用自动化设置为每天推送。每天起床后,你就可以收到一条包含汇率、天气等信息的当日小报。

这种场景下,快捷指令反而有了不可替代的地位。

至此,我们将面对本栏目的第二个核心内容:场景最优化

相信你肯定不希望做舍近求远的事情,因此,我们需要对各种需求的场景有敏锐的判断。举个简单的例子,你独自一人等电梯上 25 层,电梯 A 在 1 层,但里面有很多分散在不同楼层的人;电梯 B 在 10 层下行,很快就能到 1 层。这时候,你就面临两种选择:

  • 电梯 A:与许多人一同挤电梯 A,还需要在很多层停靠,但可以立马上电梯;
  • 电梯 B:可以独自享受空旷的电梯轿厢,不需要等待中途停靠,但需要多等一会儿。

还是代入到前文「图片转 PDF」的例子,电梯 A 就像是用 Word / Pages、网页工具来做,虽然可以立马开始执行,但过程未必舒适,而且最后消耗的时间可能更多。

而电梯 B 就像是用快捷指令,多等一会儿电梯的时间就相当于花一点时间去编写动作,随后便能一路直达目的地。这种情况下,电梯 B 自然是更加高效的选择。

因此,想要真正地用快捷指令来提高效率、节省时间,我们就需要掌握场景最优化的思维。

以少数派会员曾发布过的这篇文章为例,文中的快捷指令非常复杂,并且也需要比较长的时间去编写、调试。但完成之后却极大缩短了「统计字数」所需要的时间、步骤。这种情况下,花小时间,省大时间无疑是高效的。

读到这里,你或许有这样的疑问:我还是不知道什么时候该用快捷指令怎么办?别担心,你只需要记住这个公式,并在遇到问题时简单套入即可:

(传统方式预计耗时 - 编写快捷指令所需时间)+ 二次使用的可能性(百分比)

我们不需要精确地计算具体时间,只要用大概的估值套进去即可。比如,传统方式预计耗时为 2 个单位,而编写快捷指令并使用只需要 1 个单位,且这个需求有 50% 的可能性会在日后重复使用,就能得到:

(2-1)+0.5=1.5

如果最后的结果大于 1,那么就放心使用快捷指令吧。如果介于 0-1 之间,那么就需要参考二次复用的概率,如果大于 70%,使用快捷指令在长远看来就可以省下更多时间。如果结果小于 0,那么使用传统方法或许更合适。

这个公式只是用于帮助入门者快速计算的,在你对需求和场景有了一定了解后,完全可以根据自己的想法来选择合适的工具,不要被公式限制了自己

快捷指令的分享、下载与使用

在日常使用中,我们往往还会遇到这样的情况:想要下载别人分享的快捷指令或是想要分享自己编写的快捷指令。这篇文章就将带你全面上手快捷指令的分享、下载与使用。

下载并使用快捷指令

无论是在少数派,还是各类科技论坛、社区,我们都能看到大家分享自己编写的快捷指令。这些快捷指令通常会以 iCloud 链接的形式呈现,我们只需要在 iOS、iPadOS、macOS 设备上打开链接,并点击链接中的「获取捷径」,系统便会自动打开快捷指令 app 并获取对应的快捷指令。

此时,我们只需要点击「添加快捷指令」,它便会被添加到你的快捷指令库中。运行的方法与其他快捷指令别无二致,你也可以随意对快捷指令的内容进行修改调整。

警惕来源不明的快捷指令

值得一提的是,从网上下载的快捷指令存在无法确认安全性的风险。换句话说,别有用心的人可能会在快捷指令里搞「小动作」。因此,在运行网上下载的快捷指令后,建议自己检查一遍其中的动作。

比如,一个叫「微博热搜榜」的快捷指令,如果加入了获取相册照片相关的动作;或者「隐藏私密照片」的快捷指令却有一个「获取 URL 内容」的动作,并且 URL 内容指向某个图床……这些都可能导致你的隐私信息被泄露。

不过,快捷指令本身也有相应的防范措施。每个快捷指令在初次运行时,都会向用户索取对应权限,包括联网、删除内容、读取敏感信息等。如果在运行时你发现有不对劲的地方,建议立即停止运行并检查快捷指令的动作

除此之外,网上下载的快捷指令还可能会遇到需要「检查版本」的情况。这种情况通常是编写者在开头用相关动作连接至自己的服务器,并对比本地和服务器版本号,从而确保快捷指令的版本是最新、可运行的。

一般来说,这样的版本验证并不会影响快捷指令的运行。尤其是某些需要长期维护的快捷指令(比如涉及 API 接口的快捷指令),这一方法可以确保分发出去的快捷指令能够正常运行。

当然,正因为这样的版本验证不影响快捷指令的运行,如果你想在不联网的情况下使用相关快捷指令,也只需要把联网验证的动作删除即可。

分享快捷指令

分享快捷指令有以下两种方法:

  • 在快捷指令编写界面点击分享按钮,随后选择「拷贝 iCloud 链接」;
  • 在快捷指令库中长按(macOS 则为右键点击』想要分享的快捷指令,随后选择共享 >「拷贝 iCloud 链接」。

确认分享后,快捷指令会将包含快捷指令的 iCloud 链接复制到你的剪贴板,你只需要将这个链接分享给别人即可。

创建自己的第一条快捷指令

作为贯穿 Apple 生态的效率工具,快捷指令极低的上手门槛和极高的能力上限。灵活运用好快捷指令,可以让许多原本复杂的工作被轻松解决。

读到这里,相信你已经对快捷指令有了基础的了解,并且知道为什么要使用快捷指令、什么情况下适合使用快捷指令了。从现在开始,我们将从「创建快捷指令」开始,逐步踏入快捷指令的世界。

作为希望能帮助大家「用好」快捷指令的栏目,我们并不太希望用「Hello World」这样简单却不实用的内容来作为你的「第一个」快捷指令。

因此,我们选择了一个相对有些难度,但具有实用性的快捷指令——每日播报作为引入,带大家了解快捷指令的编写流程及自动化的部署。

🔗 点此下载「每日播报」快捷指令

第一步:拆解需求

在创建快捷指令前,我们需要先明确自己的需求。也就是我们想每日播报看到什么。以我个人为例,每日播报对于我的意义在于帮我快速了解一些今天需要知道的事情,比如天气情况、今日油价、日程安排等信息。

此时,就需要用此前提到过的编程思维来拆解这些需求:

  • 天气情况:通过快捷指令获取当日天气情况,并选择性展示;
  • 今日油价:通过 API 或网页查询的方法,获取当地的油价信息;
  • 日程安排:调取日历、任务管理等 app 的数据,集中展示当天任务。

读到这里,相信你的思路也非常明确了。我们要做的这个「每日播报」的快捷指令分为 3 个模块,并在最后将各模块的信息集中为一条推送通知。

第二步:创建快捷指令并编写天气模块

打开快捷指令 app,点击右上角的 + 按钮即可创建一个空白的新快捷指令。

在这一步,我们需要编写天气模块,而快捷指令恰好支持直接调用系统的天气 app 来获取信息。因此,我们只需要搜索「天气」就能找到「获取天气预报」这一动作,将它拖拽1到快捷指令的空白处即可完成添加。

此时,你会看到下图这样的动作。其中蓝色的部分是动作的参数。你可以通过修改参数来调整这个动作所获取 / 输出的内容。

在「获取天气预报」的动作里,快捷指令会自动为我们填充参数。如果直接运行的话,就会获取设备当前位置最近 10 日的天气预报:

细心的你或许已经发现了,「获取天气预报」一共导出了 10 个项目,分别对应 10 天的天气信息。但我们只想要今天的(也就是第一个项目),怎么办呢?

非常简单,只需要添加「从列表中获取项目」这个动作即可。

在添加动作时,你会发现它自动将「天气状况」作为参数填入了动作。这也是快捷指令的特色之一,新动作在添加时,会自动识别前一个动作的结果并作为参数。这样既保证了动作的连续性,也节省了我们反复填写参数的时间。

获取详细信息

虽然前文只用了 2 个动作就完成了天气信息的获取,但我觉得 28°C 大部晴朗无云 这样的表述太笼统,没有任何参考价值,我想要的是 6 ~ 21°C,晴朗无云,降水概率 0% 这样详细的数据。

此时,我们只需要用到「获取天气状况的详细信息」这一动作就可以了。它可以帮我们从当日的天气状况读取到详细信息。

首先,我们如下图这样添加 4 个「获取天气状况的详细信息」动作:

随后,我们需要在蓝色的区域填入参数。点击 天气状况,在弹出的菜单中选择「来自列表的项目」。调整后的效果如下图所示:

在这个例子中,我们需要获取「最低温」「最高温」「天气状况」和「降水概率」这 4 个项目。因此,我们需要逐个点击 详细信息 并选择对应的项目:

注:这里其实有更加简洁的方法,在后续章节中会提及。此处为了方便理解,步骤会比较多。

如果你在此时运行快捷指令的话,会发现最后输出的结果只有最后一个项目,这是因为我们没有将其中的内容整合起来。那么接下来要做的事情,就是整合内容。

整合内容

在整合内容之前,我们需要先知道快捷指令为我们准备了哪些内容。如果我们单独将每个「获取天气状况的详细信息」的内容拆开来看,会发现它们只会展现这样的数据:

而我们需要使用文字将它们串起来,也就是:让快捷指令说人话,最后输出为 今天的天气为 X,气温 xx-xx,降水概率为 XX

这时候,我们就需要用的快捷指令中的「文本」动作。在添加好「文本」动作以后,我们首先按照下图这样输入文字:

随后,在需要填入天气信息的地方点击右键,并在「插入变量」中选择对应的变量,iOS / iPadOS 则可以在键盘上方的工具条中选择变量。试着运行一下,就会发现之前的数据就已经被整合好了。

到这里,天气模块就已经编写好了。你可以根据自己的需求来随意修改获取到的天气数据,或是推送时的文本表述。

最后,我们只需要添加一个「设定变量」,并设置为 将变量 Weather 设为 文本 备用即可。

第三步:编写油价查询模块

不同于前文的天气信息,快捷指令并没有为我们提供油价相关的查询功能。这时,Power User 经常提到的 API2 就是一个极佳的解决方法。

从 API 获取油价信息

这里以 free-api.com 上找到的「今日油价查询」接口为例。我们只需要在 free-api.com 注册自己的账号,随后按照网页提示获取 app_id app_serect 的参数备用。

值得一提的是,free-api.com 只是一个「API 的搬运工」,提供的 app_id 等参数通常是公用的,可能存在调用次数过载的问题。如果你想获得更稳定的体验,可以在 APi 文档「基本说明」的「接口地址」里找到 API 的来源并申请专属的参数。

回到快捷指令,我们需要新建一个「文本」动作,并将下方内容复制到「文本」动作中。

https://www.mxnzp.com/api/oil/search?province=【填入省份】&app_id=【填入你的 app_id】&app_secret=【填入你的 app_secret】

随后,修改其中的省份、app_idapp_secret 三个参数。

接着,我们再加入一个「获取 URL 内容」的动作,将 URL 指向刚才的文本,就可以从 API 获取信息了。如果此时你用「快速查看」动作来检查内容的话,你看到的会是这样的内容:

{"msg":"数据返回成功!","data":{"t89":"7.25","t98":"9.60","t0":"7.46","province":"广东","t92":"7.81","t95":"8.46"},"code":1}

解读 JSON 词典

从这段 JSON 词典里,我们已经可以清晰地看到各种汽油的价格了。我们接下来要做的,就是把其中的价格内容提取出来。

这里要用到「词典」相关的动作,在「获取 URL 内容」动作下添加「获取词典值」,并将「键」的内容设置为「data」(如下图)。

我建议你用「设定变量」功能将数据存储起来,在后续调用的时候会更加直观、方便。之后,只需要在「获取词典内容」里,将「词典」值设定为变量,再将「键」设定为 t89 / t98 / t92 等汽油型号即可。

比如下图这样设置,就可以获取 95 号汽油的价格。如果你想获得省份信息,只需要把「键」修改为「province」即可。

我们只需要按照自己的需求,用多个「获取词典内容」动作来筛选自己想要了解的价格,再像前文天气模块那样,用「文本」动作来把数据整理为「人话」,油价查询的模块就完成了。

如果你想像图中这样同时获取多个油价,可能会不知道怎么选择数据。因为「获取词典内容」动作传递下来的数据会显示为「词典值」,而不会像天气模块那样显示「最高温」「最低温」这样的具体数据。

这时候,我们可以点击右键,选择「插入变量 > 选择变量」,随后选择对应动作下方的「词典值」即可。iOS / iPadOS 则可以在键盘上方的工具条点击「选择变量」。

最后,我们还要添加一个「设定变量」,并设置为 将变量 Price 设为 文本 备用即可。

第四步:编写任务管理模块

任务管理模块的编写会根据每个人所使用的 app 不同而有所差异。本文将以系统自带的日历、提醒事项为例,带大家了解如何编写并设置其中参数,你可以根据自己的实际情况调整其中的动作、参数。

快捷指令为日历、提醒事项提供了非常实用的筛选动作,分别是「查找日历日程」和「查找提醒事项」。这两个动作支持丰富的筛选功能,可以帮我们准确定位到今天的任务

先说「查找日历日程」,如果想要筛选出今天的日程,那么只需要将「开始日期」的参数设定为「是今天」。此外,为了排除假日、节气信息的干扰,我们还可以点击动作右侧的 + 号,设置一个 日历 不是 中国大陆节假日 的筛选条件。这样,快捷指令就会帮你筛选出今天需要执行的所有日程展示出来。

那么,如果我当天没有日程怎么办?

假如你问出了这个问题,那么问句中的「如果」就是最好的答案。我们只需要用「如果」动作来判断「查找日历日程」是否获取到了日程,如果当天没有日程的话,可以选择跳过这一步,或是输出一个「今天没有日程」的提示。具体如下:

用「如果」和「重复」优化体验

首先,添加一个「如果」动作,并将条件设置为 日历日程 有任何值

在下图的两个区域中,分别代表了「今天有日程」和「今天没有日程」两种情况下会执行的操作。

接着,我们就得分别编写两种情况下需要执行的操作。在有日程的情况下,我们肯定希望将每一个日程的名称、起始时间都呈现出来,方便我们在每天早上一目了然地知道自己今天要干什么。

我们可以用「获取日历日程的详细信息」动作来获取标题、开始时间和结束时间。与天气模块类似,我们也只需要按照自己的需求来获取对应的内容即可。

很多时候,我们每天的日程不止一个,这时就可以用「为每个项目重复」动作来提升效率了。

在添加了「为每个项目重复」之后,只需要在其中放入 3 个「获取日历日程的详细信息」并将动作里的「日历日程」参数设置为 重复项目,将「详细信息」参数分别设置为 标题开始日期结束日期

随后,下方添加一个「文本」动作,并通过右键(macOS)或键盘上方的工具栏(iOS / iPadOS)填入 📅标题:📅开始日期 - 📅结束日期。在填入开始日期和结束日期的时候,快捷指令通常会弹出格式菜单,我建议把日期格式设置为「无」,时间格式设置为「短」

这样输出的效果就会是:

与老麦开会:10:30 - 11:30

接下来是这部分动作的重点:用「添加到变量」动作存储文本。这里之所以不用「设定变量」,是因为「添加到变量」是在同一个变量里不断叠加内容,而「设定变量」则是将一个变量抹掉再写入新的内容。

用「添加到变量」把文本存储到变量后,在「结束重复」方块后再添加一个「文本」动作,并将刚刚的变量放到里面即可。

到这里,「今天有日程」的情况就已经完成了。至于无日程的情况就非常简单了,只需要添加一个「文本」并写入 今日无日程 即可。如果你嫌麻烦,甚至可以直接留空,在没有日程的时候,快捷指令会自动跳过日程相关的动作。

接下来便是第二个重点:将「如果的结果」存储到变量。在执行完「如果」内的一系列动作之后,快捷指令会输出两种结果:

  • 有日程:输出日程标题和起始时间;
  • 无日程:输入「今日无日程」。

我们需要用一个变量将这个结果存储起来,方便后续调用。此时无论用「设定变量」还是「添加到变量」都可以,只要变量名称不与其他变量冲突即可。

至此,基于日历的任务管理模块就完成了。提醒事项与之类似,但相对更简单,相信读完前面内容的你,一定可以举一反三地编写出来,本文不再赘述。

第五步:整合三大模块

恭喜,当你读到这一步,说明你已经将此前的 3 个模块及其中遇到的问题都逐一攻破了,下面的步骤对你来说就是易如反掌的事。

提到「整合」,相信你已经知道我们要做的就是让快捷指令说人话。我们只需要添加一个「文本」动作,然后按照这样填入相关内容:

☁️ 今日天气
【变量】Weather
⛽️ 今日油价
【变量】Price
📅 今日日程
【变量】Task

 

接着,我们还需要添加一个「显示通知」,让这些内容可以成功推送给我们。添加动作之后,我们得将动作中的「你好,世界」删除,并点击右键(macOS)或在键盘上方的工具栏(iOS / iPadOS)选择「文本」。

点击右侧的「展开」还可以设定推送的标题,比如设置为「今日播报」或当天的日期都可以。

试着运行一下,不出意外的话,你将收到来自快捷指令的第一条推送。

对了,在返回上一步之前,记得把用于检查输出情况的「快速查看」删掉,不然每次运行的时候都会弹窗展示,非常麻烦。

最后一步:部署自动化

在完成快捷指令的编写之后,我们就可以把它部署到自动化流程之中,让快捷指令每天为我们自动播报,省去手动点击的麻烦。

注:快捷指令目前仅在 iOS / iPadOS 端支持「自动化」功能。

首先,我们在快捷指令里打开「自动化」并点击右上角的 + 号,选择「创建个人自动化」。

随后,选择「特定时间」并选择你想要的时间(比如早上八点)。同时将下方的「重复」设置为「每天」后点击「下一步」。

此时会进入快捷指令的编辑界面,你只需要添加「运行快捷指令」动作,随后点击蓝色的「快捷指令」字样,选中刚刚创建的快捷指令并点击下一步。

在最后的确定页面,我们需要关闭「运行前询问」。如果打开这个开关的话,快捷指令在执行动作之前会要求你手动确认,非常麻烦。在关闭此开关以后,还会有一个「运行时通知」的开关,保持关闭即可。

「运行时通知」会在运行快捷指令时向你发送一个通知,告诉你正在执行某个自动化,关闭后才能获得更加「无缝」的体验。

点击完成保存以后,你的第一个快捷指令自动化就完成了,静待明天早上 8 点的推送就行了。

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀