内容简介:生活中有很多事情是低效益,重复性。比如每天上某些网站,先登录再签到打卡,比如每隔一段时间清理回收站的文件等等。一个成熟的软件工程师应该想到用软件解决他。对于这些简单的小任务,一般用脚本实现。比如Python脚本或者JavaScript脚本等等,不过还得装运行环境。如果能在电脑上直接用就好了,那么有没有呢。有,那就是基于命令行(.bat)脚本或者 Powershell 脚本(.ps1),这两个东东都是 Windows 自带运行环境的,比较方便的脚本。
生活中有很多事情是低效益,重复性。比如每天上某些网站,先登录再签到打卡,比如每隔一段时间清理回收站的文件等等。一个成熟的软件工程师应该想到用软件解决他。
对于这些简单的小任务,一般用脚本实现。比如 Python 脚本或者JavaScript脚本等等,不过还得装运行环境。如果能在电脑上直接用就好了,那么有没有呢。
有,那就是基于命令行(.bat)脚本或者 Powershell 脚本(.ps1),这两个东东都是 Windows 自带运行环境的,比较方便的脚本。
而本文的主角就是 Powershell。
PowerShell 是一种跨平台的任务自动化和配置管理框架,由命令行管理程序和脚本语言组成。 与大多数接受并返回文本的 shell 不同,PowerShell 构建在 .NET 公共语言运行时 (CLR) 的基础之上,接受并返回 .NET 对象。 这一根本上的改变引入了全新的自动化 工具 和方法。详见 Powershell官方说明
长话短说,Show me the code。
下面是一个简单的示例,我准备写一个脚本,控制 IE 浏览器打开百度,然后搜索“微软药丸”,看看专业的药丸师有什么见解。
#声明变量 #待会要用的链接 $Url = "http://baidu.com" #待会要用的关键词 $Keyword = "微软药丸" #创建一个IE对象 $IE = New-Object -com internetexplorer.application $IE.visible = $true #导航到URL $IE.navigate($url); #等待完全加载 while ($IE.Busy -eq $true) { Start-Sleep -s 1 Write-Host "wait for loading..." -ForegroundColor Gray } #在 Console 打印 Log Write-Host "Enter Baidu Main Page" -ForegroundColor Cyan #找到百度首页的输入框元素,输入关键词 $IE.Document.getElementById("kw").value = $Keyword #找到百度首页的搜索按钮,执行点击事件 $IE.Document.getElementById("su").Click() Write-Host "Submit keyword" -ForegroundColor Cyan start-sleep -milliseconds 500 #等待页面加载 while ($IE.Busy -eq $true) { Write-Host "wait for loading..." -ForegroundColor Gray Start-Sleep -s 1 } #没有意义的等待延时,就是任性一下 Start-Sleep -s 1 Write-Host "Bye!" -ForegroundColor Cyan
在记事本输入这些代码,保存为 Baidu.ps1 文件。
在文件所在目录按住SHIFT键,在当前目录启动 Powershell。
输入.\Baidu.ps1,就可以执行了。
下面就是执行效果,完美~
这只是一个简单的例子,但是麻雀虽小,五脏俱全,我想介绍的启动 IE,输入文本,模拟点击,输出Log 都用到了。
你也可以用他来登录某些网站进行签到,领奖,打卡等等,思路是一样的。总之浏览器能做的事情都可以将其程序自动化。
这个时候你或许会觉得,哎,我每次都用手动执行脚本,那也不省事呀。能不能每天领一次奖呢?
Absolutely,下回我们简单介绍一下如何用“Windows任务计划”把脚本安排得明明白白。
========================== PS ===================================
1.Powershell的相关文章里面,通过IE获取元素一般写的是
$IE.Document.getElementById( " kw ")
本文也是,这个东西一般没啥问题,但是真出问题你就头疼,比如在Win10环境中我需要获取的某个Button元素一直找不到,然后还搜不到原因,一度没法使用。
但是最终在文档找到 了 IE 的全新 COM接口
$IE.Document.IHTMLDocument3_getElementById( " kw ")
如果执行脚本时发现类似下面这样的错误,搜百度也解决不了,那么请试试使用新的API。
Exception from HRESULT: 0x800A138A
At <path>.ps1:
char:5
+ $IE.Document.getElementsByID("kw").Click();
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
由于Powershell是通过COM接口去控制IE的,所以这个问题时 IE 浏览器的锅。因为它是预装的,而且IE11完全够用,一般还是用他。
以上。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何编写awk命令和脚本
- 编写可靠 bash 脚本的一些技巧
- 编写可靠 bash 脚本的一些技巧
- 编写可靠 shell 脚本的 8 个建议
- 使用Fake和Paket编写F#脚本
- 10 个实战及面试常用 Shell 脚本编写
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
微信小程序入门指南
知晓程序 / 电子工业出版社 / 2017-6-1 / 49
《知晓程序:微信小程序入门指南》是一本分析小程序生态、解读小程序产品设计与开发的入门图书。全书共 9 章,全面讲解了小程序的基本知识、大家如何看待小程序、小程序对行业的影响、小程序对开发者的影响、小程序对用户的影响、开发小程序需要的准备工作等内容,并深入解读了小程序的官方文档。 读者在阅读《知晓程序:微信小程序入门指南》之后可以清楚小程序与订阅号、服务号的区别,了解小程序适用的场景,认识小程......一起来看看 《微信小程序入门指南》 这本书的介绍吧!