想想你的工作场景里是否会出现以下场景:

  • 需要定期从 A、B、C 等多个网页里搜集数据填写到 Excel 里面,或者相反,从 Excel 里面定期找数据填写到网页的表单。
  • 一次性收集数百份 Word 表单,需要汇总表单中信息到 Excel,或者相反,根据一份 Excel 表格中的信息填写模板生成不同的 word 文件(比如合同)。
  • 每天都需要在几个地方导出数据,简单处理后邮件发给其他人。
  • 定期监测某些网页、软件的数据变化,发通知到企业微信/钉钉/飞书。
  • ...

如果有的话,那么下面要谈到的微软出品的 Power Automate Desktop (后文将简称为:PAD)可能就会帮到你。

背景:RPA 工具与 PAD 关系

这部分不必强追概念区别,毕竟工具的最终目的还是能用,有用,好用。

RPA 是什么?

参考维基 的定义,RPA(Robotic process automation) 简单讲就是把需要在多个软件之间切换配合的工作流在不借助 API 或脚本的情况下,通过复制屏幕上的操作来完成自动化。

再直白一点,RPA 工具能做的,就是帮助你相对低成本地把工作流中重复性的、周期性的工作给自动化掉,降本增效。

RPA 工具的场景决定了它主要面向的是 to B 市场,里面既有 UiPath 这种敲钟新贵,也有微软这种老牌巨头。

PAD 是什么?

微软之前有一款和 iFTTT 和 Zapier 定位一致的云端自动化服务——Microsoft Flow,在决心进入 PRA 市场后,Microsoft Flow 就进化成了 Power Automate,有云端的流也有本地的流。

最开始的时候,Power Automate 仅对企业和教育用户开放订阅制授权,后来微软把本地版的软件对普通用户免费了,也就是本文提到的 PAD。所以 PAD 相较于完整的 Power Automate 服务,其实是少了云端自动化这部分内容的,自然也就无法连接 Dropbox、云 Office、Twitter 等三方服务。

但即使如此,PAD 单单本地的能力也能在一定程度上帮我们解决不少问题了。

和 Quicker 有啥区别?

我自己是 Quicker 的重度用户,前前后后应该写过超过 100 个复杂动作。从我个人的使用体验上讲 ,Quicker 和 PAD 都是自动化领域的好产品,只是「轻重」有别。

Quicker 做得很「轻」。随时唤起随时使用,创建的动作多数也是基于键鼠模拟、三方脚本,少有针对特定软件的 API 调用。尤其在浏览器里做自动化的场景,用 Quicker 会显得力不从心。

而 PAD 相对而言做得则会「重」一些,流需要打开软件才能运行。而且它针对 Excel、PDF、网页都有专门的功能提取,能拼成更复杂的自动化流程。

下文中用 PAD 做的流如果用 Quicker 实现起来,那难度和准确性完全不在一个层级。

安装以及使用 PAD

下载-安装-登录

如果你的工作流中并不打算包含浏览器的自动化,那么单单下载 PAD 本体即可。否则,你还需要安装 PA 的 Chrome 拓展才能运行浏览器自动化。相关下载链接:

不过需要注意的是:微软的网站访问起来可能需要一点玄学手段,看地区:)

基本概念

登录软件后左上角就可以新建自己的流了。

整个流程设置界面可以分成三部分:操作区、流程区、变量区。

流程区就不多介绍了,我们需要做的就是将我们的工作流拆成一个个子任务填到这个区域。

操作

桌面流支持的操作你都可以在 这份 官方的文档里找到说明,一般自动化流程中用的比较多的主要是:

  • 变量/条件/循环
  • 文件/文件夹
  • UI 自动化/浏览器自动化
  • Excel/PDF

需要的时候把操作拖到流程区即可,界面都很简单易懂。

变量

在变量区有三个 Tab,各自代表这一种变量,分别是「变量」、「UI 元素」还有「图像」。

变量

这里的变量就是传统意义上的变量,存储一些文本、数字。你可以在过程中新建、删除、赋值。

UI 元素

UI 元素是指软件 UI 界面中的元素,比如 Word 中的表单、浏览器中的按钮,此外部分 UI 元素是可以提取出文本的。

此类元素的一部分判别条件是包含着 UI 上的文本的,所以如果如果想使用 UI 元素做子模块,那么务必要保证窗口 UI 上的文本一致

图像

图像支持的操作其实已经把它的用途说的很清楚了:

  • 通过图像判断工作流进度:比如打开一个软件成功的标志可能是某个图标出现。
  • 通过图像定位,方便后续鼠标操作。

创建自己的流

通常有两种方法创建自己的流:

  • 通过「记录器」录制转化
  • 拆解工作流后,直接在流程区拼接

当然,多数情况下两个得结合着来,多调试。PAD 在调试的过程中支持断点和逐步运行,过程中变量值的变化也会显示在屏幕上。

下面我们将依然以文章开头的场景做例子,向大家依次展示 PAD 是如何使用的。

场景一:多个在线表格/文档数据一键导出

我自己每周都会从不同的数据平台导出商品的相关数据汇总起来做分析,每次需要大概 9 个不同的网页导出 9 个 csv 文件。

整个过程是完全的重复性工作:打开网页 => 点击『导出』=>选择导出格式 => 点击确定 => 下载完成后把文件移动到特定文件夹 => 打开汇总的 Excel => 点击 Power Query「全部刷新」。

在没有 PAD 的情况下,全程都需要自己操作。而有了 PAD 之后,以上所有操作都可以浓缩成鼠标的一个点击。

因为数据安全的缘故,我拿两份在线表格的示例数据做一个演示:

RPA 工具本身只是复现了人工的操作,所以想写出一个流,首先是把整个人工流程拆成一个个不能再拆分的子动作。

落实到批量下载上就是:

  • 获取要下载的文档地址
  • 打开文档 A,点击下载导出
  • 打开文档 B,点击下载导出
  • ...直至遍历完所有文档地址下载导出

所以我们看图片中的流:

  • 先创建列表存储要打开的文档地址
  • 给列表里赋值。因为演示中只用了两个,所以我选了逐个赋值。但在地址数量较多的情况下,其实可以选择直接 Excel 导入的。
  • 用浏览器打开网页。
  • 录制网页点击下载导出的动作:通过「记录器」录制,录完加一个「将鼠标悬停在网页的元素上」即可使用

场景二:批量汇总 Word 中表格信息

这个场景主要针对的是那些需要经常和微软 Office 套件打交道的朋友。

现在你收到了 50 多份 Word 表单,可能是户口迁移/奖金申请/事故报告…… 总之,你现在想把这些表单中的姓名、手机号、身份证号等其他信息都汇总到一张 Excel 表单里面。

那传统的方法可能真的就是只有逐个打开 Word,重复粘贴到 Excel 里面了。

但你可以用 PAD 这样做:

同上,我们需要讲整个填表的流程拆成一个一个子动作:

  • 获取要打开的 Word 文件列表
  • 打开要写入的 Excel 表格
  • 用 Word 打开文档 X (第 X 个)
  • 提取单元格文字
  • 获取 Excel 该写入的行
  • 写入 Excel
  • 关闭 Word

里面有几个点值得一提:

重命名文件

上文提到过,由于提取文字这一步用到了「UI 元素」这种变量,所以必须保证不同的 Word 的文件具有相同的标题,否则提取就会失败。

受本文编辑 Lincoln 指点,其实在 PAD 对应步骤里的 Name 的运算符从「等于」切换到「包含」就可以规避掉重命名这一步了。

用 Word 打开文档

PAD 仅内置了「用 Excel 打开」,对于其他的文件,你需要自行填写它的命令行打开方式。

通常来讲,常用软件都可以按上图的方式,更改一下程序路径和文件名即可使用。如果不行的话请百度「程序名+命令行+windows」。

至于怎么找到应用程序的路径,可以参考:《Windows 10如何定位程序所在的位置

备注

这个演示视频虽然看着挺厉害的,但需要指出的是此功能对多数的普通 Word 表格是无效的。如果想要使用此功能,需要在 Word 的单元格中开启「纯文本内容控件」

如果 Word 表格中没有纯文本的内容控件,目前 PAD 是无法从 UI 元素中提取出文字的。

如果如果你没有修改 Word 模板的权力,要实现此效果恐怕只能通过模仿键鼠或者 VBA 了。

开启内容控件的方法可以在 这里 查看。

场景三:批量提取 PDF 封面

我承认,这个场景是我奇葩臆想出来的[Doge]

假设你现在有 1000+ 的 PDF 书籍,你想要把他们的封面都提取成图片做一张合照来展示。

在没 PAD 的情况下,我没想到啥低成本的解决方案。唯一的想法可能是 Adobe Acrobat + Js 脚本,但显然门槛太高。

但你可以用 PAD 这样做:

流程非常简单:

一些 Tips

  • 「UI 元素」和『图像』从原理上讲,是会受显示器影响的。所以如果你有多个显示器,请确保这两种变量在哪个显示器获取就在哪个显示器上运行,否则流是无法运行成功的。
  • PAD 是无法在连接不上微软网络的条件下登录、运行的,所以一方面你需要保证你日常使用场景下的网络条件正常,另一方面你需要在创建流的过程中经常 Ctrl+S 避免数据丢失。
  • 关于 PAD 的中文资料还是蛮少的,哪怕有可能也是针对云端流的,所以日常遇到问题了需要使用英文搜索。

关联阅读:

> 下载少数派 客户端、关注 少数派公众号,找到数字时代更好的生活方式 🎊

> 年度回顾、好物推荐…… 更多精彩尽在 少数派 2021 年度盘点 🎉