在 Mac 上的“快捷指令”中使用“重复”操作
“重复”操作和“为每个项目重复”操作允许你在快捷指令中连续多次运行一组操作。
使用“重复”操作
将“重复”操作添加到快捷指令中时,操作会包括两个标记:“重复”和“结束重复”。将要重复运行的操作放在“重复”和“结束重复”标记之间,然后指定想要操作重复的次数。快捷指令运行时,标记之间放置的操作会按你指定的循环次数循环运行。
例如,包含“使设备振动”操作且设为“重复 3 次”的重复循环会在快捷指令运行时使你的 iOS 设备振动三次。
你可以在重复循环内放置无限多个操作。操作按顺序从上到下运行,当到达最后一个操作时,快捷指令会回到第一个操作,然后再次运行,直到运行了指定的次数。
【提示】在快捷指令中,你可以将“重复”操作放在彼此内部:在快捷指令编辑器中拖移第二个“重复”操作,使其与第一个“重复”操作的下部重叠。则第二个“重复”操作会嵌套(缩进)到第一个“重复”操作的下方。
关于“重复”操作中的数据流
重复循环中每一次迭代的最后一个操作的输出会集中在一个列表中,此列表会成为整个“重复”操作的输出。
例如,一个运行四次且包含“获取最新的照片”操作的“重复”操作会在循环的每一次迭代中输出存储到“照片”的最近照片。四次迭代全部运行完成后,输出会集中到一起,并创建一个包含四张相同照片的列表。这四张照片会成为整个“重复”操作的输出,然后传递到重复循环之后的下一个操作。
若要了解输入流和输出流的更多信息,请参阅Mac 上快捷指令的工作原理介绍。
使用“为每个项目重复”操作
“为每个项目重复”操作接收项目列表作为输入,然后针对列表中的每一项运行一次同一组操作。处理多个文件或多份内容时,此操作会很有帮助。这种类型的循环会一直重复,直到将传入“为每个项目重复”操作中的每一项都进行了迭代。
例如,如果有一个“获取临近日程”操作设为取回接下来的四个临近“日历”日程,而你将“为每个项目重复”操作放在此操作之后,则重复循环会运行四次,每一次迭代都接收其中一个“日历”日程作为输入。
将“为每个项目重复”操作添加到快捷指令中时,操作会包括两个标记:“为每个项目重复”和“结束重复”。
在重复循环的结尾,传递到“结束重复”标记的每一次迭代的输出会集中起来,作为整个“为每个项目重复”操作的输出。
“重复项目”变量
“为每个项目重复”操作提供了一个用于跟踪当前项目的特殊变量:“重复项目”。“重复项目”变量会在循环每一次迭代时更新,其中包含传入本次迭代的项目。
例如,如果你将 10 个“日历”项目传入“为每个项目重复”操作,则随着快捷指令循环过每一个“日历”项目,每一次迭代中的“重复项目”变量就代表其中一个“日历”日程。
【注】如果将一个“为每个项目重复”操作放入另一个“为每个项目重复”操作内,则变量名称会变为“重复项目 1”或“重复项目 2”,分别代表重复内部的项目和更深一层循环的项目,以此类推。
“重复索引”变量
所有重复循环都提供一个用于跟踪当前循环迭代的特殊变量,叫做“重复索引”。“重复索引”变量包含目前为止循环已经重复的次数,从 1 开始(代表循环中的第一次迭代),每次增加一。循环第二次运行时,“重复索引”为 2。循环第三次运行时,“重复索引”为 3;以此类推。
【注】如果将一个“重复”操作放在另一个“重复”操作内(即创建了嵌套重复循环),则内部“重复”操作的变量名称会变为“重复索引 2”。另一个内嵌“重复”操作则会提供“重复索引 3”变量,以此类推。
有关更多信息,请参阅在 Mac 上的“快捷指令”中使用变量。
创建无限循环
虽然“快捷指令”不提供永远重复运行一组操作的操作,但你可以使用“运行快捷指令”操作来模仿这一行为。“运行快捷指令”操作允许你在一个快捷指令内运行另一个快捷指令。配置“运行快捷指令”操作以运行其内部包含的同一个快捷指令,它会从头到尾一直重复,直到你停止快捷指令。
测试输出
学习使用“重复”和“为每个项目重复”时,测试“结束重复”标记之后产生的结果对于确保获得了想要的内容是很有帮助的。在“结束重复”标记之后放置“快速查看”操作以预览重复循环输出的项目。
你还可以在“结束重复”标记之后放置“显示提醒”操作,并在信息框中插入“重复结果”魔法变量以显示循环输出的文本。如果正在测试长快捷指令中间的循环,使用“显示提醒”操作来预览结果是很有帮助的,因为你可以在提醒中包括一个“取消”按钮来在此循环处结束快捷指令。