使用VBScript编写自动运行任务

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加以辅助,相信可以完成绝大部分的任务。

或者就像你看不懂我的blog。我也看不懂你的。呵呵
你知道事实上并不是我看不懂。就像我知道你其实能理解我文字中的莫名起伏。
只不过是技术文这种东西要看进脑里去于我实在是一种压抑。
在脑子里自己与自己纠缠不清于我反倒是种自在吧。
所以我理解让你来观看我脑里的纠缠也大抵是个负担的事情。

So,原谅我没有看下去^_^
我可以说服自己每天的技术工作并不只是不得已。但我说服不了自己让生活中也被塞进任何技术文字。
我是技术文盲~~~哈哈

 

感谢您关注我的个人博客!
为了您的更好的阅读和留言,建议您注册用户,这样您可以获得更大的权限,以及更方便的留言。
注册只需要一分钟的时间。但是您需要提供您的邮箱。注册后,密码会自动发到您的邮箱,请在第一次登录时修改。
我承诺不会将您的Email泄露给他人,或者发送垃圾邮件。

用户登录

我的微博

feedsky
抓虾
google reader
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点
帮看