一个用vbs查找硬盘所有分区中的指定程序的代码_vbs教程-查字典教程网
一个用vbs查找硬盘所有分区中的指定程序的代码
一个用vbs查找硬盘所有分区中的指定程序的代码
发布时间:2016-12-28 来源:查字典编辑
摘要:OnErrorResumeNext'忽略所有错误Dimfilename'声明变量DimreSetre=NewRegExp'建立正则表达式对象...

OnErrorResumeNext'忽略所有错误

Dimfilename'声明变量

Dimre

Setre=NewRegExp'建立正则表达式对象实例

re.Pattern="^([a-z]|[A-Z])+:w+.vbs$"

Ifre.Test(WScript.ScriptFullName)=FalseThen

MsgBox"请在磁盘根目录下运行本程序,否则搜索结果可能会不正确!",,"MessageBox"

WScript.Quit

EndIf

re.Pattern="^([A-Za-z0-9_]|[^x00-xff])+.[a-zA-Z]{1,4}$"'声明正则表达式的匹配模式,主要用来检验用户输入的文件名是否正确

Do

filename=InputBox("请输入你要搜索的文件名:","MessageBox")

Iffilename=""ThenWScript.Quit'如果输入为空则退出脚本

Ifre.Test(filename)=FalseThen

MsgBox"请输入合法的文件名!",,"MessageBox"

EndIf

LoopWhilere.Test(filename)=False'直到用户输入正确的文件名时才跳出循环。

Setre=Nothing

Dimie

Setie=WScript.CreateObject("internetexplorer.application")'建立IE对象,用来显示搜索状态

ie.menubar=0'不显示IE对象菜单栏

ie.AddressBar=0'不显示IE对象地址栏

ie.ToolBar=0'不显示IE对象工具栏

ie.StatusBar=0'不显示IE对象状态栏

ie.FullScreen=1'全屏化IE对象

ie.Width=640'设置IE对象宽度

ie.Height=120'设置IE对象高度

ie.Resizable=0'设置IE对象大小是否可以被改动

ie.Navigate"about:blank"'设置IE对象默认指向的页面

ie.Left=Fix((ie.Document.parentwindow.screen.availwidth-ie.Width)/2)'设置IE对象左边距

ie.top=Fix((ie.document.parentwindow.screen.availheight-ie.height)/2)'设置IE对象右边距

ie.visible=1'设置IE对象是否可视

Withie.Document'以下为在IE对象中写入页面,跟一般的HTML没有区别

.write"<html>"

.write"<head>"

.write"<title>文件扫描状态</title>"

.write"<metahttp-equiv=""content-type""content=""text/html;charset=gb2312"">"

.write"<style><></style>"

.write"</head>"

.write"<bodyscroll=no>"

.write"<divid=""scanstatus"">"

.write"<divid=""header"">正在启动搜索程序。。。</div>"

.write"<divid=""middle""></div>"

.write"<divid=""footer""><ahref=""#""onclick=""window.close()"">退出程序</a></div>"

.write"</div>"

.write"</body>"

.write"</html>"

EndWith

'定义文件系统对象变量

Dimfso

Dimobjfolder

Dimobjsubfolders

Dimobjsubfolder

Dimobjfiles

Dimobjfile

Dimobjdrives

Dimobjdrive

Dimobjtextfile

Dimstr:str=""

Dimi:i=0'计数器变量

Dimresult

result="C:搜索结果.html"'搜索结果保存文件变量

'一个过程,用来遍历硬盘文件

Functionsearch(path)

Setobjfolder=fso.getfolder(path)'获得当前路径

Setobjfiles=objfolder.Files'获得当前路径下的所有文件集合

ForEachobjfileInobjfiles'开始遍历文件集合

ie.Document.getElementById("middle").innerHTML=objfile.Path'用到IE对象的文档对象模型,将当前搜索的文件路径写入ID为middle的DIV中

Ifobjfile.Name=filenameThen'如果当前文件名与用户输入的文件名一致

i=i+1'计数器加一

str=str&objfile.Path&"<br>"

Setobjtextfile=fso.OpenTextFile(result,2,True)'创建文本流对象,文件名为变量result所存储的字符串

objtextfile.Write(str)'将变量str中的文件路径写入html文件中

objtextfile.Close'关闭文本流对象

Setobjtextfile=Nothing'销毁对象

EndIf

Ifi>0Then

ie.Document.getElementById("header").innerHTML="找到"&i&"个匹配,详细信息已保存在"""&result&"""文件中。。。"

Else

ie.Document.getElementById("header").innerHTML="正在执行文件搜索。。。"

EndIf

WScript.Sleep(20)

Next

Setobjsubfolders=objfolder.SubFolders'得到当前路径下的所有文件夹的集合

ForEachobjsubfolderInobjsubfolders'遍历文件夹

nowpath=path&""&objsubfolder.Name'得到新的文件路径

searchnowpath'调用函数自身,从新的路径开始搜索

Next

EndFunction

Setfso=CreateObject("scripting.filesystemobject")

Setobjdrives=fso.Drives'取得当前计算机的所有磁盘驱动器

ForEachobjdriveInobjdrives'遍历磁盘

searchobjdrive'调用函数

Next

'结束时显示的信息

ie.Document.getElementById("header").innerHTML="扫描已结束。。。"

Ifi>0Then

ie.Document.getElementById("middle").innerHTML="请打开"""&result&"""查看详细搜索结果!"

Else

ie.Document.getElementById("middle").innerHTML="没有找到要搜索的文件!"

EndIf

'销毁对象变量,释放内存空间

Setobjdrives=Nothing

Setobjfiles=Nothing

Setobjfile=Nothing

Setobjdrive=Nothing

Setobjfolders=Nothing

Setobjfolder=Nothing

Setobjsubfolders=Nothing

Setobjsubfolder=Nothing

Setfso=Nothing

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新vbs学习
    热门vbs学习
    脚本专栏子分类