不是所有业务都能实施RPA丨RPA项目实施十大陷阱
如今,已经有越来越多的企业开始选择实施RPA(机器人流程自动化)。并将其看做是实现企业业务流程优化的“利器”。但是不是企业所有的流程,都可以实施RPA?
从技术角度来看,许多流程要实现自动化并不难。但问题的关键是这样做是否有必要。对企业运营者而言,计算投资回报率(ROI)是一件非常重要的事。如果花费了时间、精力与成本,将RPA部署在了一些并不是亟需优化的流程上,最终较低的ROI将会令运营者对RPA的效用产生怀疑。
其实这绝对不是RPA的错。而是企业一开始就没有对自己的流程摸清楚。
不是所有的流程都能实施RPA
为了能使RPA在企业中发挥更大的功效与价值,企业在部署RPA之前,首先要做的事,就是梳理好业务流程。评估出到底哪些流程亟需实施RPA。这样的流程往往会在RPA自动化过程中,为企业带来更大收益。
通常这些流程会符合以下几大特点:
1、对企业成本和收入影响较大。
2、大批量的业务流程。
3、面向客户的流程。
4、特别容易出错的流程。
5、对速度有要求的流程
。6、劳动力需求不规则的流程。
之所以会选择符合这6点要求的流程,实际上是由RPA技术本身的特点与优势决定。
RPA擅长攻克哪些流程?
RPA技术,实际上以自动化软件作为虚拟劳动力,依据预先设定的程序与现有系统进行交互并完成预期的任务。通过RPA“软件机器人”可以捕捉并模拟我们日常的键盘、鼠标操作等人机交互行为,并代替我们完成识别、触发、通信、计算、文本生成等任务,自动执行高重复性且标准化的业务流程。
由于执行成本低,部署时间较短,RPA机器人通常可以在短时间内完成部署并投入使用。企业可以快速评估业务流程优化效果,快速获得投资回报。
所以企业寻求RPA的目的,就是要降本增效,而对企业成本和收益影响较大的流程环节,当然也是实施RPA的首选。那些劳动力需求不规则的流程,通常会在业务高峰期需要大量人力,而低谷期如果还继续保留这部分人力,又会耗费大量成本,造成浪费。RPA可以弥补高峰期人力短缺的不足,从而降低企业成本。
其次,RPA作为软件机器人,可以确保操作的精确性和效率,这样那些面对客户的流程,要求速度和准确度的流程将是RPA施展的绝佳之地。
此外,机器处理的特长之一将是处理大批量重复的任务,就像工厂当中的装配机械手臂,所以大批量的任务,会让RPA的发挥更彻底。
RPA项目实施过程中常见的十大陷阱
1、针对不合适的流程部署RPA
这样的流程包含2类:之一类是非常复杂的流程。针对复杂的流程做RPA规划将会产生高额的费用。复杂程度中低等的流程或子流程是RPA项目初期的更佳目标,企业可在RPA成熟之后再着眼于复杂的流程,从价值更高或构架简单的部分开始,逐步增加该流程的自动化程度。
第二类则是经常变化的流程。RPA不适合被部署到经常变化的系统中去,频繁升级或者变更会导致RPA项目维护难度直线上升。
2、针对某一流程过度自动化
看待RPA的更佳视角是将其当作辅助工具,用来完成基础流程的操作,使人力有更多时间完成其他工作。将一个流程的70%低价值部分自动化,30%高价值部分人为处理时一个良好的初期目标。机器人完全学会每一个流程可能需要较长时间,项目应尝试通过一系列简易的变革,逐步增加流程自动化的比例。
3、低估RPA所带来的影响
在RPA项目的启动、定位和交付中会遇到很多问题。然而有2个问题可能会影响到RPA项目的延迟上线与利益实现:忽视了如何使自动化流程上线和由谁来操作RPA机器人。
一个以业务为导向的RPA卓越中心是管理提升虚拟劳动力的更佳方式。着手构建卓越中心,就IT管理达成共识,训练员工使用RPA机器人并持续优化流程。
4、采取传统 *** 实施RPA
通常企业采取过于工程化的软件实施 *** 来部署RPA,其中包括低价值的文档和阶段性划分,使通常只需要几周实施周期的RPA项目延长至几个月。
大多数软件实施 *** 对RPA来说都太过于工程化,尤其是RPA较少改变现有系统且新流程已存档在RPA工具中。企业应依据自身面临的挑战,简化传统实施 *** ,通过灵活的手段分阶段实施RPA。
5、缺乏RPA商业案例
大多数企业通常会先做POC(概念验证)或RPA试行来检验RPA是否能如期运行。但是通常成功的POC和大规模生产自动化之间仍有巨大的差异,RPA项目组将无法回答董事会关于“如何定位RPA,RPA项目有着怎样的成本与回报”等基本问题。
而且要通过POC需要花上数周时间,将复杂程序自动化,这期间足够开展一个扎实的机遇评估探讨,和完成具体的商业案例。
6、针对RPA建立POC的过程、资源及经验不足
一个RPA常见的陷阱,只需短短一两天的培训,大多数的业务用户就可以自动化一个简单的流程。然而实际上,创建一个可以灵活扩展的RPA流程所需要的技能远远不止这些。因此通常情况下,POC需要经过长期的测试和修改过程后才能实施,甚至是重建。在团队培训和技能转移支持上不吝啬花费,是项目成功的重要因素。
7、对RPA的投资回报率期望过高
现有的RPA虽然能够自动化大部分流程,但是并不能自动化所有流程——通常是因为这些流程需要从打 *** 或纸质记录开始,或需要一定的客户沟通。因此公司经常会自动化了很多子流程,却忽略了刻意通过电子化或者OCR技术来增强RPA功能以及自动化整体流程。
8、忽略IT系统设施
绝大多数的RPA工具,更好是在一个虚拟的桌面环境里,通过适当的扩展和业务持续性设置,进行操作工作。RPA流程可以很快地实施,但IT却不能够在如此短暂的时间搭建完善的生产设施,并因此成为实施RPA的主要绊脚石。
9、没有将RPA考虑为业务主导,而是由IT作为主导
企业通常在初期认为RPA是系统自动化项目,从而忽视了RPA最终将会把公司上下的业务交付给虚拟员工来处理。
成功的RPA是由业务为主导,与IT、 *** 、安全、风险、人力资源和其他职能部门有着紧密合作关系的企划或项目。
10、将RPA看作一系列系统自动化项目,而非端到端的变革项目
如果在RPA项目进行中,没有做好系统性的架构重组与员工重置计划,企业人员会迅速流散转移去做其他工作,例如关注服务提升,或关注比手动任务自动化更有趣的任务。这可能导致项目预期利益未能全部实现,项目的后续阶段未能得到批准。
影刀RPA火的理由什么?
影刀为什么会火,接下来我会层层剖析
本文是新生RPA软件影刀开山介绍之作,你将跟随笔者的视角,层层剖析这款来自由来自前阿里巴巴、百度、微软等顶级工程师倾心打造的一款全新且功能强大的自动化RPA开发软件,它将超越你所认知的RPA能力边界,火力全开向你展示着其易用性、强大性、全面性、成熟性,给你充分的理由来推动公司内部业务侧、公司战略侧走向从信息化时代跨向自动化时代。
既然说它是超越型技术,那么它到底超越了什么?突破了什么?
一、RPA现阶段有哪些问题?
要了解超越的定义,就要先理解传统的现状到底是什么,到底有什么问题,再来理解超越的概念。众所周知,目前RPA技术成为资本的宠儿之后,涌现了很多RPA产品,然而谁用谁知道、谁买谁知道,因此,市场才是真正的验证者,在这个技术真正走向客户之后,就发现了各种各样的问题,总结下来可以分为三种:
1、稳定性受开发环境的限制,时常需要维护
RPA是部署在软件之上的技术,因此其稳定性收到所自动化的这个环境的稳定性而定,尤其是遇到软件大版本更新亦或者是前端界面改动(经常遇到的就是网页界面发生变化),这个技术就失灵了,“惊慌失措”的客户不得不去找当时跟其实施的实施商进行维护,一来一回,客户体验受损,实施商利益亦受损;
2、所谓的简单易学其实也是有很高门槛的
很多RPA产品提出可视化开发的功能,但是真正在用可视化开发的人会知道,要完成一个业务流程的自动化,经常会涉及到一些复杂的情况,即便是通过拖拉拽,依旧离不开使用代码去实现配置,尤其是遇到某些前端的控件录制不到的时候,不得不使用代码的方式去实现一些高阶功能,例如录不到网页最右侧的滚动条或者软件里某些藏得很深的按钮,亦或是要提取某段数据里的关键数据,如提取某段文字里客户的 *** 号码、邮件等关键信息,不得不使用正则表达式去提取,这些高阶功能由于本身产品的设计缺乏业务思维,在设计很多功能的时候缺乏从用户视角考虑实际的业务环境,从而给业务人员学习增加了很多学习成本,大众依旧很难学会这样的技能。
因此,即便是打出可视化低门槛这样的口号,真正学会的人依旧很少。
3、并非能够自动化一切
在讲这个前,你需要去理解一款软件是到底怎么开发出来的,其实软件在开发的环境绝大部分都是在微软WINDOWS系统的.NET环境下开发出来的,这也是市面上所有RPA只支持Windows环境下自动化的原因,大部分软件为了快速开发出来,都是用的.NET环境的标准框架开发出来的,然而一些有实力的开发者,都是自定义开发的,有着独立设计的框架和自渲染的界面,另外一部分软件通过JAVA或者QT开发出来,例如大家常用的钉钉、微信。因此RPA技术要去自动化这些软件,往往会碰到一些难题,例如无法录制到那些自定义开发,有着独立设计框架和自渲染界面的软件的控件,又如无法准确录制到远程桌面或者FLASH,因为这些都是以图像的形式存在,只能通过图像识别技术来进行初步识别,但图像识别的准确率却并非那么完美。
这些难点,即便是你未从事RPA行业,也能感知这些困难点如果无法很好解决,作为比Python、宏、AutoIT更简单的自动技术,RPA想引领自动化时代的潮流也是很有难度的。
二、影刀RPA如何解决这些问题?
在影刀RPA的眼里,这些难点都已经取得了突破性解决,那么是如何解决的呢?
本文将剖析部分这款强大易用的软件到底有何种“魔力”!给你提供一种完全0代码的方式即可解决复杂问题的开发,让你快速具备自动化的技能!
1、顶级鼠标键盘模拟操作,世界上任何软件均可自动化;
影刀将模拟点击用到了极致,可以直接定位控件所在电脑屏幕的位置,直接模拟鼠标移动过去,然后模拟鼠标左键或者右键的点击操作,从而保证能够100%操作世界上任何软件。
又如遇到网页或者软件右侧的滚动条录制不到,怎么办?
充分考虑实际操作中为了把滑块下拉将数据展示全面,往往都是操作鼠标的中间红色滚动装置来进行下滑,将功能进行了优化,直接设置滚动鼠标滚轮的指令,将任何网页或者软件滑块进行下滑。
2、顶级深度捕获模式,非标准软件框架录不到?任何控件统统逃不掉;
录制:首先录制是一个产品的核心灵魂,如果要实现自动化如果录不到控件就无法进行任何操作,但行业的技术目前往往无法完全保证解决这个问题,其产品一般是通过录制控件的方式来识别控件,如果识别不了只能通过图像识别的方式去判断控件,但是一旦用图像识别往往不能保证100%能够控制控件,会遇到图像像素不够导致识别不了,亦或是即便是识别了,但是由于本身控件的原因,无法进行操作,影刀RPA依靠强大的算法能力,将产品进一步升级,提供深度捕获模式,可以通过一层层筛选从而直接找到控件;
3、解决稳定性的大杀器——窗口控制功能
极大提升稳定性,目前RPA不稳定往往是由于2个原因造成:
①本身UI界面发生了变化,比如遇到软件或者网页版本更新的问题,前端页面出现大的变动,从而导致此前录制的控件无法识别,亦或者整个业务操作的逻辑发生变化,只能重新录制;
遇到这个问题,要么你只有找实施商,亦或者自己维护,但是门槛过高,导致用户无法快速学会维护,从而只能求助服务商。
②就是由于本身电脑稳定性的问题所导致,例如电脑突然蹦出弹窗等突发事件导致挡住了流程界面,导致整个应用无法执行,这种突发事件的发生,传统的只能通过异常提醒通过邮件或者短信的方式告知使用者,从而让使用者重新启动自动化的进程。
但用影刀就完全不一样了,影刀不仅可以直接控制操作界面的窗口大小和位置,从而把操作界面变最小并放到最不易被弹窗挡住的位置,从而不会受到突 *** 况的影响。
如果都这样“小心翼翼”,还是又遇到异常怎么办?不怕,影刀RPA还直接提供异常智能处理功能,即便某个流程因为突发事件断掉了导致这个步骤无法执行,产品可智能重启流程或者直接把流程往下执行,并记录异常点。
4、人性化设计,简单,可不是说说;
根据用户使用习惯做了极致柔性改变:
(1)针对提升懂代码的开发者:提供0代码可视化+编码结合开发的模式,觉得可视化拖拉拽更方便就通过可视化来解救,解决代码更方便就直接可以转化成代码模式,极大去提升代码开发者的效率;
(2)针对业务人员:提供纯0代码的可视化模式,为了方便使用增加了很多柔性功能
1)自定义对话框的功能:充分考虑实际业务环境当中会市场遇到的情况:
①经常会涉及到账号登录操作,需要输入账号密码;
②经常会遇到需要到对应的位置填报对应的信息;
以往的 *** 都是需要用户先做好一个EXCEL表格,把对应的数据做成结构化,然后导入到产品里面,再去调用数据;
现在只需要先提前自定义对话框,每次启动就会弹出一个对话框,直接在对话框内填好对应的信息,就可以进行对应的操作了;符合用户手动操作的使用习惯,不需要还要去 *** 一个表格;
2)文本提取内容功能:充分考虑实际业务环境中,业务人员常常需要提取一段数据里的关键数据,例如客户信息里的邮箱、 *** 、身份证等,可以直接通过选择对应的功能即可直接提取对应的数据,对其它不常用的关键数据才使用正则表达式进行提取,而其他产品提取任何数据都需要写代码,无疑对原本无代码基础的业务人员增加了学习门槛
影刀,给予大众真正人性化设计,将自动化真正走向平民化,赋予企业大数据、信息化时代下最急迫的自动化技能,为企业走向自动化转型提供了基础,让自动化不再是高门槛,不再是特殊群体才能具备的技能,让企业快速实现人才结构化转型,不再将成本花在基础、重复性的工作上,让员工不断自我成长,从重复的工作中解放出来,增强个人实力,从而为企业提供更高的价值。
以上是总结的部分影刀的功能,大家可以直接下载影刀RPA自己体验体验,感知这款有8年RPA经验的顶级工程师和产品经理所带向自动化时代的产品魔力:影刀官网
以下无正文
本文内容部分概念定义:
①控件:指RPA软件在实现自动化过程中,需要去识别每一个前端界面的按钮,如打开/关闭按钮,下拉框或者输入框,每一个都是所谓的控件,如果RPA无法识别这些控件,意味着它将不能进行任何自动化操作;
②大众:指没有开发基础或者代码基础的学习者;
③Pyhton:一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
④QT:Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。
④虚拟桌面:远程桌面连接功能后我们就可以在 *** 的另一端控制这台计算机了,通过远程桌面功能我们可以实时的操作这台计算机,在上面安装软件,运行程序,所有的一切都好像是直接在该计算机上操作一样。
第14课:如何用RPA获取多网页内容?(练兵场一)
跟鹏飞学RPA——你爱学习,我爱分享。学习RPA就是这么简单。
从今天开始,我们将结合前期课程知识点开展为期四天的专项练兵。
★练兵介绍
场景:进入百度搜索,点击左上方的新闻进入热点新闻界面;要求使用循环命令分别点击并穿透新闻链接(取的链接为第1、3、5、7、9、11条),获取任意一段正文内容并输出。
所需命令:启动浏览器、点击目标、等待元素、数据抓取、获取元素文本、延时、计次循环。
★动作拆分
----启动浏览器
使用启动浏览器命令,属性配置浏览器类型和网址
----点击左上方新闻并进入界面
使用点击目标命令,注意因涉及界面跳转,可能因 *** 延迟导致下个界面出现时间较晚,加一条等待元素命令;目标为下一个界面任意不常变化的元素。
----抓取新闻链接备用
使用数据抓取功能,注意两个同级目标选择范围大一些,保证抓取整个网页数据;选择好两个同级目标后,抓取类型选择文字和链接。注意数据抓取结果为两个括号的,即二维数组。
----获取数组中指定链接
敲黑板,划重点。这里要仔细琢磨。
使用的是计次循环、打开网页命令。
上图是我们数据抓取时看到的表单形式,它输出的是二维数组。
上节课提到过,arrayData二维数组体现在表格里是一行一行的累加;也就是说,arrayData由多个一维数组组成,每个一维数组就是每行,如arrayData[0]是之一行、arrayData[1]是第二行……;我们要想取到里面的网址链接,显然需要继续取一维数组里的内容,比如我想取之一行网址链接是arrayData[0][1]、取第二行网址链接是arrayData[1][1]……
特别强调不要绕晕的一点,数组之一个元素下标为0,第二个元素下标为1。
下面我要用循环遍历数组取需要的链接了。
这里用到的是计次循环。取第1、3、5、7、9、11条新闻,则下标需要依次减少1;即初始值配置0,结束值为10,每次增加2即步进为2。
那怎么取链接呢?我们通过刚提到的表单可知,首先需要循环遍历每行,即为arrayData[i];而链接在每行第2个元素,下标应该为1,即arrayData[i][1]。
链接得到了,我们用打开网页的命令,网址内容即为arrayData[i][1]。
----获取标题、正文内容
使用延时、获取元素文本命令
因为网页可能有 *** 延时,这里并不适合等待元素命令。因为每个网页链接进入后没有相同元素,会造成捕捉失败报错。我们暂时加延时1秒。
然后使用获取元素文本获取一段正文内容,并应用输出调试信息输出。
从输出结果可以看到,每行输出一次内容。因为网页结构不同,有时会输出空值,可忽略,理解用途和含义即可。
下面看下运行视频。
★随堂作业
问题:应用上面的案例,获取2、4、6、8、10条新闻任意内容,并写入表格。表格命名为"新闻.xlsx",要求依次逐行写入。
★明日预告
读取表格内容,循环填写表单。
你学会了嘛?下课!
更多内容请关注跟鹏飞学RPA。
RPA脚本开发及上线建议
一, 开发建议 1. 根据流程进行文件件命名,或根据子流程进行分类。相同的 *** 或功能,抽出后作为共同部分,方便维护和管理。
2. 文档类内容,也根据功能进行分类,分层管理,主要包括模板文件,输入/输出文件,日志文件,截图文件等。
3. 机器人脚本文件命名需要规范,区分功能。例如:
01_MasterFLow…
02_SubTask_LoginXXsys
03_SubTask_SelectItem
04_SubTask_SubmitData
05_subTask_Close
06_subTask_ErrorOperation
Common_ReadConfig
Common_PrintLog
Common_SendMail
Common_NotifyToAdmin
4. 机器人脚本必须要有 Error handling.
5. 异常处理时,必须输出log,及所需的log信息。 Log文件的路径,需要使用相对路径。文件名加附时间,便于区分查找,也防止覆盖。 $AAApplicationPath$\Automation Anywhere\My Docs\New\P04\Bot02\Log\Process04_Log_$Year$$Month$$Day$.txt
6. 异常处理时,要进行截图保存。 如日志同理,方便查找失败原因。 $AAApplicationPath$\Automation Anywhere\My Docs\New\Bot02\Log\Process04_ErrorScreenShot_$Year$$Month$$Day$_$Hour$$Minute$$Second$$Millisecond$.png
7. 必要时,可以选择发送邮件进行通知。
8. 如果是脚本调用,则需要给状态变量赋值,通知上层机器人脚本运行结果。
9. 互相调用机器人脚本时,需传入/传出必要的数据。 变量名相同,可以使用quick map功能。
10. 脚本中,加入注释说明
11. 调用脚本后,需要判断返回值,进行处理。
12. 打开系统,或者流程结束后,需要关闭相关页面或程序。 关闭窗口前,需要判断窗体是否存在。
13. 当有窗口切换时,需要使用wait命令,等待窗口显示。
14. Wait 窗口时,适当调整等待时间,和失败时的处理方式。
15. 如果需要显示提示信息,则需要设置自动关闭。 Message box多用于测试,生产环境,建议使用log 和 截图。
16. 使用aa command 命令时, 窗口名称部分,尽量使用*关键字* ,防止应为系统语言不同,显示窗口标题不同,引起运行失败。
17. OC中,选择必要的属性,和合适的抓取 *** 。不要选择动态可变的属性内容。
18. 可变内容,使用config文件进行配置。方式可以是txt, excel,xml等。用机器人脚本一次性读取。
19. 对于常用的应用程序,开始流程前,流程结束后,根据需求进行关闭。Close window或者taskkill
20. 要对input/output文件进行及时处理,文件进行正确归档。
21. 密码相关内容,需要登记在Control room中的credential 中进行管理。
二, 上线注意事项
1. 确认生产环境安装相关的软件,及开通相关 *** 权限。
2. 确实生产环境的系统分辨率、缩放率,ie缩放率都为100%。
3. 确认系统、浏览器,相关软件,相关系统的语言和版本,与开发/测试环境里的相同。包括浏览器的兼容模式及internet 选项。
4. 确实AA的浏览器插件被正常安装。
5. 确定机器人脚本,配置文件,相关文档都正确上传至Control Room和 runner电脑。
6. VM虚拟机通常作为生产环境,注意RDP时的分辨率选择。
7. VM的windows系统中,建议设置为只允许一个用户同时登录,防止多session产生的问题。
8. 登录RDP时,事先通过Control room查看机器人状态,确保机器人闲置时,再登录远程桌面,防止干扰机器人正常工作。
9. 如果安全要求允许,可将机器人日志和错误截图文件,放置在共享盘或FTP上,方便进行错误查询和判断。
10. 提前编写上线操作手册,将相关细节进行记录,以作备用。
11. RDP访问退出时,建议选择注销当前用户,或者命令行方式退出。
12. 可在测试环境中,更换电脑,进行模拟上线。
如何解决RPA远程断开或窗口最小化的失效问题
问题原因分析:
因为通过mstsc启动远程桌面连接时,被连接的Windows会启动一个会话(Session)。此时你对远程桌面窗口里面的所有操作(鼠标,键盘)将会‘翻译’成TCP包传输过去,被连接的Windows接收到这些包之后,‘还原’命令并且在当前的活动会话上面执行。而当你断开连接时(点X关闭),会话变成断开状态,Windows会自动关闭会话(这里这样说是不准确的,事实上会话还是在的,只是状态变成断开的),也就导致了所有基于GUI的操作‘失效’了。
当最小化远程桌面时,Windows为了节约 *** 带宽传输,会暂时‘关闭会话’,导致你的模拟操作程序失效。
最初级的两个解决方案:
1. 到远程电脑上,登录,然后关显示器,走人,记住不要远程登录它;
2. 远程连接,永远不要关,也不能最小化。
当然我也有更好的解决方案,我的解决方案可以实现远程桌面的窗口最小化或是关闭而不影响模拟键盘鼠标的脚本。
1.窗口最小化失效的解决方案:
修改注册表项(注:从机器A通过远程桌面连接机器B,则需要在机器A上修改注册表)
32位机器:
HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized或
HKEY_LOCAL_MACHINESoftwareMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized设置数据类型DWord,值为2
64位机器路径不同:
HKEY_CURRENT_USERSoftwareWow6432NodeMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized或HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized设置数据类型DWord,值为2
2.关机失效的解决方案:
远程桌面mstsc远程登录虚拟机时,在虚拟机中新建文本文档,写入内容
@%windir%\System32\tscon.exe 0 /dest:console
@%windir%\System32\tscon.exe 1 /dest:console
@%windir%\System32\tscon.exe 2 /dest:console
将文本文档重新命名为‘Close_RDP’,并将后缀名改为‘.bat’,双击文件‘CloseRDP.bat’关闭虚拟机,在虚拟机关闭后带有SendKey的脚本可以正常运行。
0条大神的评论