iOS 上大名鼎鼎的 Workflow 在我派是深入人心,许多大神研究了很多高阶的玩法,利用 Workflow 提高了不少的效率。不得不承认,自从我开始用 Workflow 之后,也是越来越离不开他。iOS 端有 Workflow 这样的神器,那么 Mac 端呢?当然有,而且还是 macOS 系统自带的,叫 Automator ,俗称「扛炮」。他在一个很不起眼的地方,你可以通过 Spotlight 搜索来启动它。
说实话,第一次知道 Automator 叫扛炮,我笑的停不下来。
界面介绍
打开 Automator ,我们新建一个文稿,然后点击工作流程,然后我们就来到了 Automator 的主界面。
我们可以把界面分成三块,左侧的部分叫做资源库。Apple 已经贴心的在这里给我们准备了很多的动作。有系统级别的动作,也有相应 App 的一些动作。稍后我们编辑工作流程的时候,这些动作我们可以直接拖到右侧用,就像iOS 上的 Workflow 一样。右侧灰色的地方是动作编辑区,是我们制作动作流程的地方。那么编辑区下方就是流程运行的日志了,如果我们的工作流程有什么出错,就会在这里显示。
是不是会觉得和 Workflow 很像?实际上他们就是一家人。其实,Keyboard Maestro ,Automator ,Workflow 都是同一类型的软件,都能够帮助我们这种「懒」人自动的去完成一些 *** 作。无论是设计还是功能,三者都有着异曲同工之妙。
Automator 能做什么?
下面我们通过几个例子,来具体展示一下 Automator 的强大功能。
1 一键音频输出切换
我的桌面系统有一个 USB 连接的音箱和一个 DAC 连接的耳机。人是一种很奇怪的动物,有时候喜欢外放,有时候又喜欢独享。那么这就带来了一个问题:我们要怎么去切换输出的设备?
我当然可以拔掉一个接另一个,可是这样一点都不酷。而且这些的连接部分都藏在电线收纳盒里,每次都插拔会把人都累死。另外一种方法是按 option 点击状态栏的音量图标,可以选择输出设备。可我想要一种更懒的方法,摊在椅子上,然后我「啪」的按一下键盘,音频就切换了。如果要我坐起来按住键盘用鼠标来选,我觉得特别麻烦,由此可见,懒真是促进人类科技发展得以一个重大动力。
这个时候,Automator 就登场了。只需要一个 AppleScript ,所有问题迎刃而解。
我们在左侧的资源库搜索「运行 AppleScript」,然后把它拖到右边的编辑区,输入下面的命令:
on run {input, parameters}
tell application "System Preferences"
activate
set current pane to pane "comapplepreferencesound"
end tell
tell application "System Events"
tell application process "System Preferences"
repeat until exists tab group 1 of window "声音"
end repeat
tell tab group 1 of window "声音"
click radio button "输出"
if (selected of row 4 of table 1 of scroll area 1) then
set selected of row 3 of table 1 of scroll area 1 to true
set deviceselected to "Generic USB Audio Device"
else
set selected of row 4 of table 1 of scroll area 1 to true
set deviceselected to "USB Audio DAC"
end if
end tell
end tell
end tell
tell application "System Preferences" to quit
return input
end run
这是从网上搜索来的一个 AppleScript ,我们只需要修改 row 后面的数字和需要切换的设备名称就可以了。其中 row 后面的数字对应输出设备在「系统偏好设置 — 声音 — 输出」的排列顺序。
我们在 Automator 运行一下这个工作流程,看看有没有报错,测试音频是否切换成功。成功之后,保存这个工作流程,给他命上一个自己喜欢的名字。然后进入「系统偏好设置 — 安全性与隐私 — 隐私」里,选择下方的辅助功能,在右侧的框里把所有的勾都勾选上。因为如果有一个应用程序没有勾选的话,你在这个应用里运行这个工作流程会报错,所以这一步一定不要忘记。
在这里插一小段,快捷键的设置不建议在「系统偏好设置 — 键盘 — 快捷键」里设置,建议用 Keyboard Maestro 。在 Keyboard Maestro 里设置一个快捷键,然后选择运行工作流程,把我们保存的这个工作流程选进去。因为系统设置的快捷键不能设置为单键,如果设置为单键,按下之后不会有反应,并且楼主在用外接键盘的时候,有时候会失灵,换成 Keyboard Maestro 之后,就从来没有出错或者失灵过了。
2从PDF文件中提取文本
对于楼主这样一个文科生来说,这是一个十分有用的工作流。它能帮助我从 PDF 文件中直接提取出文本,并且能够选择输出的方式,尽管不是特别专业的软件,但是胜在简单、不需要安装第三方软件。
我们在 Automator 中新建一个文稿,选择应用程序,然后在左侧的资源库里搜索 PDF ,然后将 提取 PDF 文本拖入到右侧的编辑区。然后我们可以选择输出的设置,例如是纯文本或者多信息文本,是否添加页眉或者页脚。如果希望根据 PDF 文稿内容询问 *** 作,可以在动作框下面的选项处选择「工作流程运行时显示此 *** 作」。选择后,每次提取文本时,系统都会询问此次提取的相关设置要求。最后以应用程序格式,保存这个工作流。
将一个 PDF 文档拖到这个程序上,就可以运行这个工作流程。如果在设置时选择了「工作流程运行时显示此 *** 作」,Automator 就会d出一个对话框让我们选择;否则就会按照设定好的要求自动输出。
从输出的质量上看,效果还是很不错的。
3批量重命名一组照片
对于喜欢摄影的人来说,把一大堆片子按日期和拍摄地点分类是一件极其痛苦的事情,索性就让它乱着。其实,借助 Automator 创建一个批量命名的工作流,就可以解决问题。
在 Automator 中新建一个文稿,选择「应用程序」,在左侧的资源库搜索「获得文件夹内容」,将它拖到右侧编辑区,然后搜索「给 Finder 项目重新命名」,同样的拖到右边。这时系统会问是否要对所变更项目做拷贝,这里可以根据需要自行选择,我这里选择的是否。
首先给照片设置一个连续的编号,在上面的动作选项卡选择「连续编号」,然后按照我的偏好设置成我想要的文件命名方法。然后,我们在拉一个「给 Finder 项目重新命名」到右侧的编辑区,选择「添加日期或时间」,继续根据个人喜好设置相关 *** 作。
设置完成后,保存,这时会生成一个应用程序,我们把拍的照片拷贝到电脑的任意一个文件夹,然后把这个文件夹拖到这个应用程序上,眨眼之间,照片的命名就完成了。
4将 WAV 文件自动转码为 Apple Lossless 并添加到 iTunes
这是一个适合我个人需求的动作流程。我习惯在网易云下载了无损音乐之后,将它转换成 Apple Lossless 放进 iTunes 里听。以前的 *** 作是用 Permute 2 转换成 WAV之后,拖进 iTunes 里,转换并编辑歌曲信息。但是用了 Automator 之后,后面繁杂的步骤就都被省去了。
在 Automator 里,新建一个「文件夹 *** 作」,然后依次将「导入音频文件」、「将文件导入到 iTunes 中」、「设置 iTunes 歌曲的信息」拖到右边的编辑区,之后设定好转换和添加的要求,保存并且运行就可以了。
将下载文件夹添加到文件夹 *** 作的目标文件夹,然后设定好 Permute 2 转换 WAV 音频的输出目录到下载即可。只要我将 flac 、ape 等文件用 Permute 2 转换好 WAV 之后,便会自动转换成 Apple Lossless 并添加到 iTunes ,然后d出一个对话框让我输入相关的歌曲信息。唯一遗憾的一点是,不能在这个对话框里添加歌曲的专辑封面。
总结
尽管它是 macOS 里自带的应用,但却被放在了 Launchpad 的「其他」文件夹里,因而导致使用它的人并不多。但这并不影响 Automator 成为一个强大的自动化工具。它可以帮助我们把日常的一些 *** 作变成一个自动化的流程,大大的节省时间并且提高效率。不仅如此,我们还可以用它来进行批处理、运行 AppleScript 、运行 Xshell ,甚至录制动作等等。
最重要的一点是,Automator 不需要我们有高超的编程基础,仅仅靠拖动、选择点按等可视化的 *** 作,就能创建强大的自动化流程。如同 iOS 设备上的 Workflow 一样,简单而优雅。当然,想要往更高阶的玩法走,还是需要学习一些编程语言的。
以上便是 Automator 的简单介绍和用法,适合新手和不懂编程的人。有兴趣的筒子和大神们,可以继续深究。
我认为Alfred最成功的地方,是为繁琐的命令执行 *** 作,提供了一种无比优美简洁的使用方式,而且还提供了门槛很低的扩展框架,让用户充分发挥自己的想象力。 回到问题本身,分享下我自己的经历。 我学习的方式主要通过参考别人已有的workflow。workflow具体做的事情可能千差万别,但是有很多workflow的实现逻辑是相似的,比如我之前想写一个workflow用于切换mac的全局proxy:Proxy Toggle ,就很大程度参考了另一个用于切换Wi-Fi开发的workflow:Wi-Fi toggle。 Alfred有个很好的地方,就是你都能在alfred中看到你所使用workflow的具体实现,也就是它们对你都是开源的,至少我用过的workflow都可以。大部分workflow直接在alfred的workflows选项卡下都能看到,有部分workflow可能调用一些脚本文件,你也可以进入对应workflow文件夹下打开具体的脚本文件(可以通过右键workflow -> Show in Finder 打开workflow的文件夹) 我认为理解Afred workflow的几个组成部分是入门的关键,包括Triggers、Inputs、Actions、Outputs。 Triggers不是必备的,常用来设置快捷键开启某个Workflow。 Inputs定义了你在Alfred输入框中输入对应的keyword相应的显示内容。 以我常用的 @icyleaf 的有道翻译workflow为例,输入“yd workflow”下面所显示的结果都是Inputs中定义的。Inputs中以一个约定的xml格式输出文本就能被Alfred正确显示,上图的显示对应的xml代码为: <xml version="10"> <items> <item uid="11392438279" arg="工作流 ['wə:k,fləu]" valid="yes" autocomplete=""> 首先这是个有限范围的讨论,这三个概念有相当大的部分是重叠的。但是有着看问题的不同角度,其中有些是任务驱动,有些是技术驱动多些。从国内CG行业的现状来看,大家提的最多的是pipeline这个词,开始我大概也就理解成“流程”,因为翻译也是管道,我们都是脑子里容易出画面的人,你现在脑子里是不是一堆管线了。但是后来渐渐的发现应该看成流水线更贴切,它是由事件驱动形成的线路,用身边的事物解释可以有很多例子。
例如麦当劳的汉堡生产流水线:鸡肉下油锅5分钟,机器提示灯亮起,捞出鸡肉;面包排整齐放入加热器,正反面加热50秒,拿出,放上鸡块、生菜、蛋黄酱,盖上上盖,左手拿住汉堡,右手拿一张包装纸,将汉堡放人包装纸,右手合上,包装完毕。(其实还有很多细节啊)再比如全自动的咖啡机:放入咖啡豆,机器先自检,水==够了、残渣盒==空置,开始磨豆子,加热,水泵开始用预设的压力曲线将热水注入,萃取咖啡,萃取完毕,倒残渣,水==不够->提示灯亮起->等待人工处理、残渣盒==满->提示灯亮起->等待人工处理。我觉得咖啡机是家用电器中,机电一体化程度最高的电器。
再用我们自己行业的东西来说,请看教学 >所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和d性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等)。 Workflow 引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变得容易出错(信息的路由错误、死循环等等)。
就好比一辆汽车,外表做得再漂亮,如果发动机有问题就只是一个摆设。应用系统的d性就好比引擎转速方面的性能,加速到100 公里需要1 个小时(业务流程发生变动需要进行半年的程序修改)还能叫好车吗?引擎动不动就熄火(程序因为逻辑的问题陷入死循环)的车还敢开吗?
工作流解决方案与传统管理软件的关系传统的管理软件注重解决企业应用层现存的问题(例如提高企业的资源配置率或提高单一员工的生产效率)。例如:EXCEL 可以提高员工画表格的效率、财务软件可以规范财务人员的工作并提高帐目查询的效率、CRM 可以规范客户管理从而使客户资源掌握在公司手中而不是被一部分业务人员把持并提高客户响应时间、ERP 解决的是如何配置企业资源:使企业的人力资源、财力资源和物资资源能够根据业务的需求实现最大化配置。 workflow 关注的是如何缩短流程闲置时间,从而提高企业的业务处理能力并使企业能够关注于真正对企业有意义的增值业务上。从建立企业神经系统的角度也许更能理解两者的区别。传统软件不能解决工作流的问题,例如ERP 关注的是企业的资源配置,但不可能解决资源传输过程中的损耗和降低传输(流程)的成本;同样workflow也不能完全解决传统管理软件所能解决的问题,例如对生产管理的MRP 系统所能解决的生产过程控制通过workflow很难实现。但一个好的传统软件如果希望能自动化地在整个企业中应用起来,必须有一个强大的逻辑层,用以解决信息传递的逻辑判断和自动流转,这个时候就需要workflow的平台。所以说: 1workflow 和传统管理软件不是同一种软件,不具可比性; 2workflow 对于已经有传统管理软件的企业的作用非常明显,可以籍此平台整合企业的各种应用系统,使之成为一个完整的企业级应用,也就是通常所说的EAI 3 具备workflow功能的管理软件(workflow与传统管理软件的结合)对于传统管理软件有绝对的优势;4workflow可以根据企业的需要开发解决信息传递问题的流程以及帮助企业开发与现有应用系统的接口
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)