Windows 自动化初探:利用 Power Automate 联通应用
想想你的工作场景里是否会出现以下场景:
如果有的话,那么下面要谈到的微软出品的 Power Automate Desktop (后文将简称为:PAD)可能就会帮到你。
这部分不必强追概念区别,毕竟工具的最终目的还是能用,有用,好用。
参考维基 的定义,RPA(Robotic process automation) 简单讲就是把需要在多个软件之间切换配合的工作流在不借助 API 或脚本的情况下,通过复制屏幕上的操作来完成自动化。
再直白一点,RPA 工具能做的,就是帮助你相对低成本地把工作流中重复性的、周期性的工作给自动化掉,降本增效。
RPA 工具的场景决定了它主要面向的是 to B 市场,里面既有 UiPath 这种敲钟新贵,也有微软这种老牌巨头。
微软之前有一款和 iFTTT 和 Zapier 定位一致的云端自动化服务——Microsoft Flow,在决心进入 PRA 市场后,Microsoft Flow 就进化成了 Power Automate,有云端的流也有本地的流。
最开始的时候,Power Automate 仅对企业和教育用户开放订阅制授权,后来微软把本地版的软件对普通用户免费了,也就是本文提到的 PAD。所以 PAD 相较于完整的 Power Automate 服务,其实是少了云端自动化这部分内容的,自然也就无法连接 Dropbox、云 Office、Twitter 等三方服务。
但即使如此,PAD 单单本地的能力也能在一定程度上帮我们解决不少问题了。
我自己是 Quicker 的重度用户,前前后后应该写过超过 100 个复杂动作。从我个人的使用体验上讲 ,Quicker 和 PAD 都是自动化领域的好产品,只是「轻重」有别。
Quicker 做得很「轻」。随时唤起随时使用,创建的动作多数也是基于键鼠模拟、三方脚本,少有针对特定软件的 API 调用。尤其在浏览器里做自动化的场景,用 Quicker 会显得力不从心。
而 PAD 相对而言做得则会「重」一些,流需要打开软件才能运行。而且它针对 Excel、PDF、网页都有专门的功能提取,能拼成更复杂的自动化流程。
下文中用 PAD 做的流如果用 Quicker 实现起来,那难度和准确性完全不在一个层级。
如果你的工作流中并不打算包含浏览器的自动化,那么单单下载 PAD 本体即可。否则,你还需要安装 PA 的 Chrome 拓展才能运行浏览器自动化。相关下载链接:
不过需要注意的是:微软的网站访问起来可能需要一点玄学手段,看地区:)
登录软件后左上角就可以新建自己的流了。
整个流程设置界面可以分成三部分:操作区、流程区、变量区。
流程区就不多介绍了,我们需要做的就是将我们的工作流拆成一个个子任务填到这个区域。
桌面流支持的操作你都可以在 这份 官方的文档里找到说明,一般自动化流程中用的比较多的主要是:
需要的时候把操作拖到流程区即可,界面都很简单易懂。
在变量区有三个 Tab,各自代表这一种变量,分别是「变量」、「UI 元素」还有「图像」。
这里的变量就是传统意义上的变量,存储一些文本、数字。你可以在过程中新建、删除、赋值。
UI 元素是指软件 UI 界面中的元素,比如 Word 中的表单、浏览器中的按钮,此外部分 UI 元素是可以提取出文本的。
此类元素的一部分判别条件是包含着 UI 上的文本的,所以如果如果想使用 UI 元素做子模块,那么务必要保证窗口 UI 上的文本一致。
图像支持的操作其实已经把它的用途说的很清楚了:
通常有两种方法创建自己的流:
当然,多数情况下两个得结合着来,多调试。PAD 在调试的过程中支持断点和逐步运行,过程中变量值的变化也会显示在屏幕上。
下面我们将依然以文章开头的场景做例子,向大家依次展示 PAD 是如何使用的。
我自己每周都会从不同的数据平台导出商品的相关数据汇总起来做分析,每次需要大概 9 个不同的网页导出 9 个 csv 文件。
整个过程是完全的重复性工作:打开网页 => 点击『导出』=>选择导出格式 => 点击确定 => 下载完成后把文件移动到特定文件夹 => 打开汇总的 Excel => 点击 Power Query「全部刷新」。
在没有 PAD 的情况下,全程都需要自己操作。而有了 PAD 之后,以上所有操作都可以浓缩成鼠标的一个点击。
因为数据安全的缘故,我拿两份在线表格的示例数据做一个演示:
RPA 工具本身只是复现了人工的操作,所以想写出一个流,首先是把整个人工流程拆成一个个不能再拆分的子动作。
落实到批量下载上就是:
所以我们看图片中的流:
这个场景主要针对的是那些需要经常和微软 Office 套件打交道的朋友。
现在你收到了 50 多份 Word 表单,可能是户口迁移/奖金申请/事故报告…… 总之,你现在想把这些表单中的姓名、手机号、身份证号等其他信息都汇总到一张 Excel 表单里面。
那传统的方法可能真的就是只有逐个打开 Word,重复粘贴到 Excel 里面了。
但你可以用 PAD 这样做:
同上,我们需要讲整个填表的流程拆成一个一个子动作:
里面有几个点值得一提:
上文提到过,由于提取文字这一步用到了「UI 元素」这种变量,所以必须保证不同的 Word 的文件具有相同的标题,否则提取就会失败。
受本文编辑 Lincoln 指点,其实在 PAD 对应步骤里的 Name 的运算符从「等于」切换到「包含」就可以规避掉重命名这一步了。
PAD 仅内置了「用 Excel 打开」,对于其他的文件,你需要自行填写它的命令行打开方式。
通常来讲,常用软件都可以按上图的方式,更改一下程序路径和文件名即可使用。如果不行的话请百度「程序名+命令行+windows」。
至于怎么找到应用程序的路径,可以参考:《Windows 10如何定位程序所在的位置》
这个演示视频虽然看着挺厉害的,但需要指出的是此功能对多数的普通 Word 表格是无效的。如果想要使用此功能,需要在 Word 的单元格中开启「纯文本内容控件」。
如果 Word 表格中没有纯文本的内容控件,目前 PAD 是无法从 UI 元素中提取出文字的。
如果如果你没有修改 Word 模板的权力,要实现此效果恐怕只能通过模仿键鼠或者 VBA 了。
开启内容控件的方法可以在 这里 查看。
我承认,这个场景是我奇葩臆想出来的[Doge]
假设你现在有 1000+ 的 PDF 书籍,你想要把他们的封面都提取成图片做一张合照来展示。
在没 PAD 的情况下,我没想到啥低成本的解决方案。唯一的想法可能是 Adobe Acrobat + Js 脚本,但显然门槛太高。
但你可以用 PAD 这样做:
流程非常简单:
关联阅读:
> 下载少数派 客户端、关注 少数派公众号,找到数字时代更好的生活方式 🎊
> 年度回顾、好物推荐…… 更多精彩尽在 少数派 2021 年度盘点 🎉
© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。