说出来有点不好意思,这活儿真不是我自己揽的。上个月我们部门每天早上的固定动作,就是把ERP里的销售报表导出来、整理、发群里,来回就那几步,但一天不落,而且一旦赶上月初数据多,光等页面加载就能把人等毛。领导有天路过,看我正跟系统较劲,来了一句:"这活儿能不能让它自己干?你研究研究。"
我嘴上说"好的我研究一下",心里想的是:我连怎么写代码都快忘光了,让我自己造个机器人?但脸不能丢,只能硬着头皮试试。结果这一试发现,Windows上早就有一套免费自带的自动化工具,全程对着界面操作,录一段、拖一拖、配一配,真的不需要写一行代码。后来我把这套流程跑顺了,同事开玩笑说我这叫"养虾"——虾苗放进池子,每天自己长大自己繁殖,我只需要隔几天看看池子里的情况就行。自动化流程也是这么回事:把逻辑喂饱,它每天自动把活儿干完,出问题还会自己哔哔叫。
这篇就是把"养虾"的完整过程摊开来说,面向和我一样不会写代码、但天天被Windows和ERP系统按在地上摩擦的办公族。你不需要懂编程术语,也不需要装什么高深环境,就用Windows自带的能力加一个免费工具,把重复的ERP操作交给流程自己跑。
1. "养虾"到底在养什么,以及它凭什么能不用写代码
1.1 自动化圈的"养虾",其实就是把RPA流程当宠物养
先把这个词讲清楚,免得网上冲浪时被绕晕。所谓"养虾",在搞办公自动化的小圈子里,一般指的不是真的养虾,而是构建了一套"跑起来就不用管"的RPA流程。RPA全称是Robotic Process Automation,翻译过来是机器人流程自动化。它的思路很简单:你在电脑上怎么做点鼠标、敲键盘、翻页面、填表格,RPA工具就把这些操作录下来,然后让一个"虚拟机器人"替你去重复执行。
之所以叫"养",是因为它和养宠物很像。前期需要你把环境搭好、把逻辑配好,相当于喂虾苗;跑起来之后它就自己循环,偶尔死了你捞出来看看原因,再调整调整,继续放回去跑。时间一长你会发现,它慢慢变成了你工作流里一个不用发工资的数字员工。
在ERP系统这个场景里,这套逻辑尤其好使。ERP本身就是重度重复操作的聚集地:每天查库存、导订单、录发票、跑月结、刷新报表,这些操作90%都是固定步骤,固定得连位置都不带变的。而人的精力恰恰不应该耗在这种稳定重复的活儿上。所以"养虾"能流行起来,本质上是把人的时间和系统的稳定性重新做了匹配。
1.2 零代码的底层秘密:录制、控件识别与动作编排
很多人一听"让系统自动操作",第一反应是"那不得涉及到改系统代码?动数据库?调用API?"其实不用。Windows下的桌面自动化工具走的是另一条路。
先说录制。工具打开一个录制器,你动手在ERP里登录、点菜单、输入条件、点查询,它把你的鼠标轨迹、键盘输入、点击目标全部记录成一份操作清单。这份清单不是简单的"录屏"视频,而是结构化的动作列表,比如"点击登录按钮""在账号框输入xxx""按下回车键"。
然后是控件识别。这是整个自动化能成立的关键。Windows里每个窗口、按钮、输入框,在系统层面都是可以被"看到"的UI元素,有自己的属性和标识,比如按钮的名字、输入框的ID、窗口的标题。自动化工具通过Windows自带的UI Automation框架,能把这些元素当成一个个有名字的对象。这样一来,它点击的不是屏幕上某个固定坐标(坐标一换分辨率就废了),而是"名字叫登录按钮的那个东西"。屏幕怎么变都不怕。
最后是动作编排。把录制出来的操作清单拖一拖、排一排,加上判断(如果出现弹窗怎么办)、循环(逐条处理列表里的每一行)、等待(页面没加载完就不许点下一步),一个完整的自动化流程就成型了。这个过程全部是拖拽卡片、下拉选参数、填字段内容,和写代码沾边的操作几乎没有。
1.3 除了Power Automate,还有什么能选
市面上能实现桌面自动化的零代码工具不算少,我实际用过和调研过的至少有三类:
| 工具 | 收费模式 | 上手难度 | 适合场景 | 局限 |
|---|---|---|---|---|
| Power Automate Desktop | 随Windows免费使用(商业版需授权) | 较低,中文界面 | 办公族做报表、操作ERP、处理Office文档 | 深层系统级操作能力有限 |
| 按键精灵 | 免费/付费版 | 极低 | 简单重复键鼠操作 | 主要以坐标和模拟键鼠为主,页面一变就容易失灵 |
| UiBot / 影刀 | 有免费社区版 | 中等 | 更专业的RPA流程,支持Web和桌面混合操作 | 企业级功能收费,学习曲线比PAD略陡 |
如果只是"把ERP的日常操作自动化"这个需求,我更推荐在Windows环境里直接用微软官方的Power Automate Desktop,下节具体说为什么。
2. 为什么偏偏是Power Automate Desktop,以及怎么把它装好喂饱
2.1 它能被小白接住的原因不是功能多,而是"陷阱少"
我选工具的标准很简单:文档全、不容易装错、出错能查到答案。Power Automate Desktop(下面统一叫PAD)完全符合。
第一,它是微软官方出品,Windows 10以上系统可以直接从官网下载,免费的个人使用版本就够用。它和Windows的兼容性天然就是最好的,不会出现装完跑不起来的尴尬。第二,它内置了中文界面,动作名称一看就明白,什么"启动Excel""等待网页内容""发送电子邮件",不需要在脑子里翻译一遍。第三,它的自动化底层用的就是Windows自己的UI框架,对窗口、按钮、网页元素的识别能力比第三方模拟键鼠的工具高一个档次——ERP这种老系统,界面再丑,该识别的控件它基本都能认出来。
还有一个隐性优势:PAD和Office全家桶是亲兄弟。ERP导出的表格最后往往要进Excel加工,PAD可以直接调用Excel的动作,打开文件、读写单元格、保存另存为,全都有现成的卡片,不需要用代码去搞什么数据接口。
2.2 安装过程中的两个小坑,提前说免得你卡住
第一个坑是下载渠道。建议直接用搜索引擎找"Power Automate Desktop下载",认准微软官网的链接。它有几个版本,有的叫"Power Automate for desktop",有的集成在"Power Automate"页面里,点进去之后选"免费试用/免费下载"即可。装的时候注意它默认可能要求登录微软账号,这是正常的,登录一次后面就是用账号保存流程。
第二个坑是环境依赖。PAD是基于.NET框架运行的,有些精简版系统或者Windows Server环境可能缺运行库,典型表现是装完之后一启动就报错,说什么msvcp140.dll找不到之类的。这个不用慌,它是个很常见的C++运行库问题,去微软官网下载"Visual C++ Redistributable"最新版安装一遍,重开PAD就好了。我当初第一次在虚拟机里装,就是被这个.dll问题摆了一道。
2.3 第一次打开PAD,先认识一下"养虾池"的三个区
PAD的界面很像一个简易的编程工作台,但实际没那么吓人,核心就三块。
左边是动作库,相当于虾池里的所有养料配方。里面按类别分好了几百种操作卡片:浏览器自动化、Excel、文件操作、消息框、变量、条件、循环等等。你用的时候就是从这里把卡片拖到中间的画布上。
中间是工作区,你创建的一个个自动化流程就在这块画布上堆叠。拖进来的动作卡片从上往下执行,你可以自己调整顺序,就像排工序。
右侧是变量区,用来定义和查看你流程里的数据。比如你把ERP页面上的"订单金额"读出来,它就是一个变量,后面算总和、写进Excel,都靠变量来传递。
第一次上手不用急着把界面全部摸透,你先知道"想干什么就去动作库里找什么",这个思路基本就顺了。PAD的哲学就是:不让你写代码,但让你像搭积木一样搭逻辑。
3. 来真的:带你搭一个"打开ERP导出销售报表"的自动化
光说不练没意义。这节我拿最常见的场景走一遍通盘流程,场景是:每天自动打开ERP系统的销售报表页面,切换日期到昨天,点导出,把Excel存到桌面。全程不写代码,核心就四步。
3.1 先做动作拆解:把人的习惯翻译成流程步骤
别一上来就开录制器,先拿张纸(或者直接在脑子里)把你手动操作的过程拆成最细的步骤。人的操作是直觉的,机器的指令必须掰开揉碎。比如"查一下昨天的销售数据",到了流程里要拆成这样:
- 打开浏览器,访问ERP登录页面
- 在账号输入框填用户名
- 在密码输入框填密码(从安全存储里读)
- 点击"登录"按钮
- 等页面加载完,左侧菜单找到"销售报表"
- 点击进入报表页
- 把日期控件里的值改为昨天
- 点击"查询"
- 等待表格加载完成
- 点击"导出Excel"
- 等浏览器下载完成
- 把下载的文件移动到桌面并改好文件名
这12步就是流程骨架。你会发现,每一步对应PAD动作库里的一个或几个动作卡片。拆得越细,后面配起来越不容易卡壳。
3.2 录制出一版草稿,然后把"死的点击"换掉
PAD里有个"录制器"按钮,点它,它会问你录制什么操作。你按照刚才拆好的步骤,自己在ERP里手动操作一遍,录制器就把整个过程变成草稿流程。这个草稿能用,但有个致命弱点:录制器默认会把操作记录成"点击屏幕某个位置",意思是它在乎的是坐标。如果换台电脑、换个分辨率、或者把窗口拖了位置,坐标就对不上了,流程就傻掉。
所以我在录制完的第一件事,是把流程里所有"点击位置"卡片,替换成基于UI元素识别的动作。方法也不难:在某个点击动作上右键,选择"刷新/重新选择UI元素",然后让PAD把鼠标挪到对应的按钮上,它会自动捕捉这个按钮的属性,替换之后就变成了"点击那个按钮",而不是"点击屏幕第500,300个像素"。这一步是"虾苗存活率"的分水岭,别偷懒。
3.3 账号密码不写进流程:用Windows凭据管理器
很多人做自动化喜欢把用户名密码直接填在流程里,点击运行,确实简单,但这是坏习惯。流程如果分享给别人,或者不小心被截图发群里,账号密码就裸奔了。PAD里有个专门的"凭据"动作,它可以读写Windows自带的凭据管理器——就是那个你平时存WiFi密码、共享文件夹账号的地方。
做法是:先把ERP的账号密码存进Windows凭据管理器,然后在PAD流程里加一个"获取用户凭据"动作,指定使用你存的那条凭据,把取回来的密码填进"密码输入框"动作里。流程运行时不会显示出明文密码,别人拿到流程文件也看不到密码值。这是绕不开的规范习惯,哪怕你是小白,一开始就养成它。
3.4 跑起来、单步走、看变量:调试一个流程的正确姿势
流程建完,点那个大大的"运行"按钮,它会按步骤从上往下执行。但如果第一次跑完就完美,那说明你运气极好。大多数时候会出问题,比如某一步没执行对,比如报表页面加载比预期慢。这时候别急着改,千万别乱改,先学会"单步执行"。
单步执行就是一次只执行一个动作卡片,执行完停一下,你可以看到当前到哪一步了、变量是什么值。配合右侧的变量面板,你能看到"账号填进去了吗?""日期控件赋值成功了吗?""Excel文件路径取到了吗?"整个排查思路特别直观——先顺着变量找问题,再调整对应动作卡片,而不是把流程删了重录。养成这个习惯,调试时间可以少一半。
4. 把"虾"养壮:循环、判断、等待和异常,四件套不能少
第一条命跑通只是开始,真正的麻烦在实际运行中。ERP这种系统,响应时间就跟天气似的时好时坏,页面弹窗也不按套路出牌。要让流程自己稳稳跑,你必须给它装上"脑子"。
4.1 没了"等待页面加载",你的流程就是个盲人开车
手动操作时,页面转圈圈,你会自动等它转完再点下一步。但机器默认没有这个常识——它会模型化地说"我点完了查询,那我现在点导出",可如果页面还没加载完,它这一下点了个寂寞,后续全乱。
所以流程里必须加"等待"动作。PAD里最常用的是"等待网页内容"或"等待窗口内容"之类的卡片,它会持续检查页面上某个元素是否出现,比如"是否出现了导出按钮",出现才继续往下走,一直不出现就等到超时为止。这个等待逻辑会显著提高流程的成活率,和你自己养虾要控制水温一样,属于最基本的保命手段。
4.2 用"如果"处理验证码和那些突然冒出来的弹窗
ERP登录经常有验证码,这个没法全自动绕过(涉及合规和安全,硬绕反而危险)。PAD的做法是:拿"循环"+"如果"组合,流程先检测页面上有没有验证码图片,有的话就弹一个对话框提醒你"请手动输入验证码",等你输入完自动继续;没有就直接登录。这不是额外写功能,就是拖一个"If"卡片,加一个条件,把验证码场景当分支处理。
还有一种高频翻车点是弹窗。系统时不时弹一个"公告""协议已更新"的提示框,如果流程不知道这茬儿,就会被卡住。解决方式也很简单:在关键点击动作前面加一步"如果出现关闭按钮,则点击关闭按钮"。很多弹窗是有固定识别文本的,直接按标题识别再点掉即可。
4.3 处理多行数据:循环才是自动化的主角
前面那个导出报表的例子,本质上还是"每次一样"的简单脚本。真正让自动化产生价值的是循环处理。比如每天有几十条待审批订单,每一条都要点开、看一下金额、点批准,这个动作就非常适合"循环"。
做法是这样的:PAD里有一个"对每个"循环动作,在你的"待审批列表"区域里读取所有行的订单编号,放进一个变量列表里,然后循环体里面执行"点击进入某订单→读取金额→如果金额大于阈值,交给人工处理;否则点击批准"。循环体里的动作只需要配一次,它会对列表里的每一条重复执行。这个逻辑一上,你的流程就从"只会跑一遍"进化成了"能处理一批"。
4.4 流程出错别装死:Try/Catch和日志留痕
流程跑几百次,总有一两次会遇到意外情况。关键是意外发生时,流程应当"知道自己死在哪了",而不是悄无声息地停掉,让你第二天早上才发现。
PAD里有一个"Try/Catch"结构,你可以把容易出错的那段动作包进去,如果中间任何一步出错,流程不会整个崩溃,而是跳到你指定的"异常处理"分支,比如弹个提示框、发封警告邮件、把错误信息写进日志文件。这个动作在动作库里直接拖出来就能用,不需要写代码。更简单粗暴的保底是:"写入文本文件"动作,把每次运行的时间、关键操作结果、错误信息附加到日志txt里,养虾的人定期看一眼日志,就知道池子的状态,而不是等虾全死了才去捞尸体。
5. 让它自己"活着":定时触发、无人值守、通知到位
流程调试顺了,接下来问题变成:能不能让它每天早上自动跑,而不是我手动点"运行"?
5.1 Windows任务计划程序:最熟悉的陌生人
PAD本身支持把流程绑定到"计划"运行,但实际用下来,我更喜欢用Windows自带的"任务计划程序"来触发。理由有两个:一个是它稳定可靠且不依赖PAD界面是否打开,另一个是你可以在同一套环境里管理多个自动化任务的调度。
配置流程也很亲和:
- 开始菜单搜"任务计划程序"并打开,右侧选"创建基本任务"
- 名称填"ERP每日自动导出销售报表"
- 触发条件选"每天",设置好发生时间,比如早上8:00
- 操作选"启动程序",程序路径填Power Automate Desktop的安装路径,参数里填你要运行的流程标识符
- 完成
为了让这个方案跑得起来,有个细节注意:PAD装完后会在你的用户目录下生成一个可以命令行调用的入口,具体路径因版本略有差异,你可以在PAD的文档或官方说明里查到"从命令行运行桌面流"的精确写法。配置好之后,只要你电脑开机到那个时间,流程就像上班打卡一样自己启动并执行。
5.2 跑完怎么通知你:邮件、群机器人,我推荐邮件打底
无人值守的问题之一是:它跑完了,怎么让你知道结果?两种常见路子:一种是把结果写进一个固定的Excel文件,你自己上班打开看;另一种是主动通知。
PAD自带"发送电子邮件"动作,可以配置SMTP服务器,把流程运行的结果、日志摘要、甚至附件Excel直接发到指定邮箱。如果你所在的公司用企业微信或钉钉,也有对应的HTTP请求动作去调用群机器人的Webhook接口推送消息,但这个属于进阶玩法,小白从邮件开始就足够。
我自己的流程是:每天早上8点跑一次,8点05分给我邮箱发一封"今日销售报表已导出,共处理订单xx条,耗时xx分钟"的邮件,附上报表文件。我需要做的就是泡着咖啡把邮件附件打开。这个体验,说实话比手动操作强太多了。
5.3 无人值守也要留后路:日志文件是你的安全网
前面提过写日志,这里必须再强调一下。无人值守的时间久了,你会发现日志几乎是排查问题的唯一抓手。你不在电脑前面,流程到底跑没跑?跑到哪一步挂了?为什么挂的?这些问题都靠日志说话。所以我的习惯是:每个流程的结尾固定加一步"把本次运行的结果、耗时、关键数据条数写入日志文件",异常处理的出口也统一往这个日志里写。这样哪怕半年后流程出问题,你也能把时间点和日志对上,快速定位。
6. 那些数据不会写进教程的"虾死"时刻,与五条避坑心得
工具我用得越深,越觉得很多经验不是看文档能学来的,全是踩坑踩出来的。分享几条我实际遇到过的状况,给你提个醒。
6.1 录制时用的是1920分辨率,换到笔记本上就失灵
我最早把流程从公司台式机(外接显示器)换到笔记本上跑,发现所有录制动作全都偏了。原因就是录制时记录的是坐标位置,分辨率一变,坐标就全不对了。解决的办法在前面说过:把录制动作换成UI元素识别。这里再补一刀:做任何流程之前,先统一运行环境的显示缩放比例。Windows的"缩放与布局"如果不同,UI识别的坐标计算也会受影响。最好是构造一套标准环境跑核心流程。
6.2 中文输入法的"智能"差点把ERP密码坑了
有一次流程跑到密码输入环节,莫名其妙多输了一串拼音,登录死活失败。查半天发现是中文输入法在作祟——PAD用模拟键鼠的方式输入密码时,如果当前处于中文输入状态,它会先把键盘事件交给输入法处理,结果英文密码就变成了拼音串。解决办法有两个:要么在输入密码前主动加一个"切换输入法到英文"的动作,要么用"设置文本字段值"这种直接赋值的方式替代模拟键盘输入。后者更稳,推荐优先用。
6.3 有时候不是流程死了,是没等着
一个很高的失败率来源是网络加载慢。ERP报表页动辄加载3-5秒(月末甚至更久),但流程没加等待就继续执行了。给所有"页面跳转→下一步操作"之间都加上"等待窗口内容/等待网页元素",成本很低,收益巨大。我见过很多人的流程跑半个小时就挂一次,加了等待之后连续跑一个月都没事。
6.4 ERP系统升级,UI元素变了,选择器失效
这套流程跑了三个月,某天突然在"点击销售报表菜单"一步失败。查日志发现,ERP升级后菜单名称从"销售报表"变成了"销售统计报表",UI元素的文本属性变了,原来的选择器匹配不上。解决方案不算麻烦:打开流程里对应动作的"选择器"编辑窗口,重新选取一次新按钮,把新的选择器值替换进去就行。这类事告诉你:自动化流程是需要偶尔"换水"的,别指望一次到位永不维护。
6.5 安全红线:哪些自动化绝对不能碰
自动化能力再强,也有不能碰的红线。我用它干活的前提是:这个流程操作的范围、权限、数据都是领导明确授权的;账号凭据通过Windows凭据管理器保存,不随流程文件流转;所有关键操作日志留痕,能追溯;不利用自动化去绕过权限审批、批量操作未经授权的数据、更不做和系统风控对着干的事。养虾是提高效率,不是钻空子。这个边界,心里要有数。
最后聊点个人的感受。这套东西研究下来,我最深的体会是:办公自动化的门槛早就降到了普通人的水平,真正拦住我们的不是技术,而是"以为自己不会编程就没法碰自动化"这个念头。Windows小白完全可以从一个简单的"打开网页导个表"练起,跑通第一个流程再来谈更复杂的循环、判断和调度。等"虾"开始自己干活、自己报平安的时候,你会觉得以前那些重复的加班属实没必要。希望这篇能帮你把第一只虾养起来。