存档

文章标签 ‘VBscript’

vbs写的IIS日志分析工具

为什么要开发vbs写的IIS日志分析工具?
在网上找了很多IIS日志分析工具,功能实在太有限,有的仅能分析百度、谷歌等搜索引擎爬虫的来访次数,远远达不到我们的用户的需求。作为一个小站长,有的时候也要分析一下自己站点的广告点击情况,静态页面的还好说,下载类的业务就不好统计了。耗时一晚上写出来本工具分享给大家,同时申请落伍,请大家帮顶。申请地址:http://www.im286.com/thread-5021543-1-1.html 。
IIS日志分析工具的使用方法
本工具对于初次接收vbs脚本的用户来说,可能有点麻烦。下面我们就一步一步来说说该工具的使用方法。
1、如果 vbscript 默认引擎非cscript,需要修改称cscript。修改方法很简单,直接在运行中输入:cscript //Nologo //H:Cscript 即可切换
2、下载IIS日志分析工具 压缩包 http://www.miaoqiyuan.cn/products/iis-log.rar,解压,打开log.vbs,修改dbpath为您当前解压的路径。
3、下载您的log日志文件,删掉前三行和第四行的#Fields: ,保存文件名为test.txt,保存到解压目录。

4、在开始运行中用cmd命令打开命令提示符,直接把 log.vbs拖拽到命令提示符中,回车即可开始分析。
以后会出软件版本吗?
会的,不过最近不会,其实现在的代码,直接拿到vb中,套个界面就比市面上的iis日志工具强大,但是现在实际还没有成熟,等正式发布时,功能绝对的强大。
IIS日志分析工具是免费的吗?
是的,本工具供站长免费使用,但是传播请保留我们的版权信息。也许您的建议将会出现在我们未来的软件版中。
vbs写的IIS日志分析工具代码如下:

‘=============================================================
‘= Copyright (c) 2010 猫七(QQ:77068320) =
‘= [...]

八 28th, 2010 | Filed under VBscript
标签: , ,

因为工作需要,经常需要操作数据转换的工作。比如:从dz导入到pw,或从新云导入到5ucms,把数据从这个表导入到那个表。操作的多了,认为自己对数据库转化还是有一定的研究的,今天写出了,希望能对做同样工作的朋友一些帮助或者启发。
一般我完成数据库转换的脚本选择vbscript。原因吗,简单当然是一个很重要的因素,更重要的常用的数据库(如:MySQL)都有ADO的驱动。
数据库转化第一步,先要确定目的数据库的类型和当前数据库的类型。如果access数据库转换成mysql数据库。则需要先去下载MySQL ADO的驱动。
第二步,连接好数据库了,现在要分析数据库对应的字段之间的关系。如果能把需要操作的数据表的字段导出来应该能快很多。既然选择了vbscript脚本,我们就让他来帮忙。

‘Auth:猫七(Miaoqiyuan.cn)
‘outTableCol(表名)
‘Desc:返回某表的所有字段
function outTableCol(tbl)
tablesCol=""
set rs=createobject("ADODB.Recordset")
rs.open "select top 1 * from "&tbl,conn,1,1
for i=0 to rs.fields.count-1
tablesCol=tablesCol & rs.fields(i).name & ","
next
outTableCol=tablesCol
rs.close
set rs=nothing
end function

直接使用Wscript.echo outTableCol(表名),哈哈,表明全输出来了(最好将vbscript的脚本宿主改成cscript)。
第三步,字段的对应关系分析好了,自然要进入实质性的过程了-插入数据。
insert into 语句?No,我们用ADODB.Recordset。使用MySQL数据库的使用ADODB也可以使用哦,这也是我使用vbscript的另一个原因,vbscript对ado的兼容性不用我说了吧。。。确定了用ADODB.Recordset,写这种Rs(..)=Rs(..)的方式也是挺麻烦的,现在我们再次请vbscript出山。

‘Auth:猫七(Miaoqiyuan.cn)
‘CreateRsStr(字段名,用’,'分隔,两个字段间的转换用=>)
‘例如:
‘CreateRsStr "d_id,d_dme" #Rs1("d_id")=Rs2("d_id")
‘CreateRsStr "d_id=>c_id" [...]

三 27th, 2010 | Filed under Share(分享), Thinks(想法), VBscript

刚才发布了一篇文章:ASP/VBScript 汉字转拼音程序,只支持GBK(http://www.miaoqiyuan.cn/p/vbscript-gbk-pinyin)。你可能已经猜出来了,为了SEO优化而转换为拼音的路径,用这个函数可以很方便的解决了。但是中国文字博大精深,相同读音的字太多了,那么上边说的方法生成的路径可能就要冲突了,怎么办呢?在此,我给大家提供一个解决方法。因为是windows平台,使用vbscript脚本来实现。
实际很简单。先用like查询是否有类似的路径,并记录结果数tms。如果tms=0怎用拼音,如果结果数大于1,则用拼音&结果数的方法。很简单吧,给出的代码如下:

‘cscript [thisScriptName.vbs]

set conn=createobject(“ADODB.connection”)
conn.open “provider=microsoft.jet.oledb.4.0;data source=D:\miaoqiyuan\Products\labs\故事\dat\db.mdb”

‘table c
‘n 故事名称
‘d 标题读音
‘g 故事
‘c 出处
‘p 标题首写字母
‘u 故事路径
set rs=createobject(“ADODB.recordset”)
rs.open “select * from c”,conn,3,2
do while not rs.eof
staTme=timer
tms=conn.execute(“select count(u) from c where u like ‘”&rs(“p”)&”%’”)(0)
wscript.echo “正在整理”&rs(“n”)&”中…”
if tms=0 then
rs(“u”)=rs(“p”)
else
rs(“u”)=rs(“p”)&tms
end if
rs.update
wscript.echo “整理”&rs(“n”)&”完毕,用时”&(Timer()-staTme)*1000&”毫秒。”
rs.movenext
loop

一 3rd, 2010 | Filed under Experience(经验), Thinks(想法), VBscript
标签: ,

实际这个程序很多地方都能用到,以前我也用过,今天在百度上找,竟然没找到。现在发上来,供以后备份。
ASP/VBScript 汉字转拼音程序,只支持GBK,至于原理吗,很简单,不要被Scripting.Dictionary吓倒了,他只是一个字典。至于拼音对应的数字,哈哈,这个要去分析下gbk的编码了。这个也是为什么只支持gbk的原因。如果要实现utf-8转换拼音的方法,直接用一个函数转换一下就可。在次先不贴出,在网上一搜就能找到。

一 3rd, 2010 | Filed under VBscript

本文原文地址为:http://miaoqiyuan.cn/p/asp-response-write-xiaolv/,转载请注明出处。
在网上看到一篇Response.write 的效率的文章,很久了,地址已经找不到了,大约说的是Response.write每行输出很慢,如果改成字符串会好一些。今天正好是星期天。有空来试验一下,看看到底对不对。
测试平台:Windows2003 SP2补丁 IIS6.0
机器配置:Intel E430 CPU(赛扬)
测试内容:
模拟一个网页输出的类,使用其Header方法,通过用函数连接的方式(Header2)连接字符串用Response.write输出,直接连接的方式(Header1)连接用Response.write输出,Response.write直接输出的方法,各执行500000次,对比运行结果。
测试代码:
见附件一
试验难题:
如果各执行500000,恐怕执行很慢,如果在浏览器中打开,恐怕将会直接导致浏览器崩溃、IIS恐怕也会崩溃。
解决方法:
1.将执行次数改为10000次。
2.用VBS脚本模拟浏览器请求,将结果保存到一个文本文件。代码见附件二
3.用{VBS脚本模拟浏览器请求的脚本的文件名}.vbs>1.txt直接将结果输出到1.txt
试验结果:
得到一个大约11.3MB的文本文件,
Header1(输出直接连接字符串):437.5
Header2(输出函数连接字符串):703.125
[...]

十二 21st, 2008 | Filed under ASP, Experience(经验), Life(生活), Share(分享), VBscript

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>FileList with VBScript&Javascript</title>
<script type="text/vbscript">
on error resume next
 
Function Mappath(v)
Mappath=fso.getAbsolutePathName(v)
End Function
 
Function getPath(style,path)
pathlist="<select style=""float:left;"&style&""" ondblclick=""javascript:FileMan(this.value)"">"
if path="" or not fso.folderexists(path) then
pathlist=pathlist+"<option value="""">我的电脑</option>"
for each xx in fso.drives
pathlist=pathlist&"<option value="""&xx&""">"&xx&"\</option>"
next
else
set fpo=fso.getfolder(path)
‘pathlist=pathlist&"<option value="""&path&""">当前目录==>"&path&"</option>"
if len(path)>3 then
pathlist=pathlist&"<option value="""&fpo.parentfolder&""">..</option>"
else
pathlist=pathlist&"<option value="""">我的电脑</option>"
end if
for each xx in fpo.subfolders
if i=0 then x=" selected" else x=""
i=1
pathlist=pathlist&"<option value="""&xx&""" title="""&xx&""""&x&">"&xx&"</option>"
next
pathlist=pathlist&"</select><select style=""float:left;"&style&""" ondblclick=""javascript:openFile(this.value);"">"
for each xx in fpo.files
if i=0 then x=" [...]

十二 1st, 2008 | Filed under Javascript, VBscript