使用VBScript编写自动运行任务

原创:http://colblog.net/node/92

VBScript是常用的一种脚本语言,他不仅仅被使用于ASP,而且可以在Windows中被直接运行,或者以命令行的形式运行。加上COM的组件库,VBScript可以做出相当强大的事情

我的任务是要写一个vbs,让他自动去下载Build,自动去Build成DLL,然后自动跑Case。
听起来挺复杂的,其实我们之前这三个步骤都已经是使用命令行来做了。我需要做的只有以下的两个问题:
1. 拼装命令
2. 执行命令
但是拼装命令是比较麻烦的一步,因为我们平时会眼睛去看网页上的Build号,然后写到命令里面去,所以这就要求程序要可以获取网页的信息,并且分析字符串,取出版本信息。

下面大概介绍一下Windows Script技术
MSDN的页面:http://msdn2.microsoft.com/en-us/library/d1et7k7c.aspx
其实在Windows里,不止可以运行VBScript,还可以运行很多其他的Script,比如JScript,还有Python Ruby之类的。
其中Windows Script Host则是一种语言无关的运行主机,任何兼容的脚本引擎都可以在上面跑。

1. 如何访问网页并得到Build号:
访问网页只需要调用WinHttp.WinHttpRequest开启一个http请求,然后将返回的字符串做一个解析,就可以了。
Function getHomePageResponse
dim oHttp, url, getHTTPhtml
Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
url = HOME_PAGE
oHttp.Open "GET", url, False
oHttp.Send
getHTTPhtml = strAnsi2Unicode(oHttp.ResponseBody)
getHomePageResponse = getHTTPhtml
end function
但是得到的网页会有问题,可能会出现编码问题,所以在网上查找了一下,加了函数:
Function strAnsi2Unicode(asContents)
dim len1, varchar, i, varasc
strAnsi2Unicode = ""
len1=lenb(asContents)
if len1=0 then exit function
for i=1 to len1
varchar=midb(asContents,i,1)
varasc=ascb(varchar)
if varasc > 127 then
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
i=i+1
else
strAnsi2Unicode = strAnsi2Unicode & chr(varasc)
end if
next
End function
最后,得到html以后,就是简单的字符串操作,就可以得到Build号了。
2. 使用VBScript开启一个程序,代码更简单,这里就使用到了wsh里的对象了:
dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
上面代码可以打开一个记事本。同样,在notepad处可以替换各种想要的程序,都可以执行。如果配合批处理,就可以做出强大的程序了。

接下来的事情就是用计划任务自动去调用了。

在Windows下的自动化任务,一般的思路是VBS+批处理+计划任务,简单的命令调用,可以使用批处理,而VBS用于各种判断,流程的实现,最后使用计划任务来定时调用。如果还不够,还可以使用任何编程语言写出Console Application加以辅助,相信可以完成绝大部分的任务。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值