- On Error Resume Next '忽略所有错误
- Dim filename '声明变量
- Dim re
- Set re=New RegExp '建立正则表达式对象实例
- re.Pattern="^([a-z]|[A-Z])+\:\\\w+\.vbs$"
- If re.Test(WScript.ScriptFullName)=False Then
- MsgBox "请在磁盘根目录下运行本程序,否则搜索结果可能会不正确!",,"MessageBox"
- WScript.Quit
- End If
- re.Pattern="^([A-Za-z0-9_]|[^\x00-\xff])+\.[a-zA-Z]{1,4}$" '声明正则表达式的匹配模式,主要用来检验用户输入的文件名是否正确
- Do
- filename=InputBox("请输入你要搜索的文件名:","MessageBox")
- If filename="" Then WScript.Quit '如果输入为空则退出脚本
- If re.Test(filename)=False Then
- MsgBox "请输入合法的文件名!",,"MessageBox"
- End If
- Loop While re.Test(filename)=False '直到用户输入正确的文件名时才跳出循环。
- Set re=Nothing
- Dim ie
- Set ie=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对象是否可视
- With ie.Document '以下为在IE对象中写入页面,跟一般的HTML没有区别
- .write "<html>"
- .write "<head>"
- .write "<title>文件扫描状态</title>"
- .write "<meta http-equiv=""content-type"" content=""text/html;charset=gb2312"">"
- .write "<style><!--"
- .write "body { background:#000000;text-align:center;margin:0px auto; }"
- .write "* { font-family:Arial;font-size:9pt;color:#00cc00;line-height:140%; }"
- .write "a:link,ahover,a:visited { text-decoration:none; }"
- .write "#scanstatus { text-align:left;margin:15px; }"
- .write "#header { width:100%;height:20px; }"
- .write "#middle { width:100%;height:50px; }"
- .write "#footer { width:100%;height:20px;text-align:right; }"
- .write "--></style>"
- .write "</head>"
- .write "<body scroll=no>"
- .write "<div id=""scanstatus"">"
- .write "<div id=""header"">正在启动搜索程序。。。</div>"
- .write "<div id=""middle""></div>"
- .write "<div id=""footer""><a href=""#"" onclick=""window.close()"">退出程序</a></div>"
- .write "</div>"
- .write "</body>"
- .write "</html>"
- End With
- '定义文件系统对象变量
- Dim fso
- Dim objfolder
- Dim objsubfolders
- Dim objsubfolder
- Dim objfiles
- Dim objfile
- Dim objdrives
- Dim objdrive
- Dim objtextfile
- Dim str:str=""
- Dim i:i=0 '计数器变量
- Dim result
- result="C:\搜索结果.html" '搜索结果保存文件变量
- '一个过程,用来遍历硬盘文件
- Function search(path)
- Set objfolder=fso.getfolder(path) '获得当前路径
- Set objfiles=objfolder.Files '获得当前路径下的所有文件集合
- For Each objfile In objfiles '开始遍历文件集合
- ie.Document.getElementById("middle").innerHTML=objfile.Path '用到IE对象的文档对象模型,将当前搜索的文件路径写入ID为middle的DIV中
- If objfile.Name=filename Then '如果当前文件名与用户输入的文件名一致
- i=i+1 '计数器加一
- str=str & objfile.Path & "<br>"
- Set objtextfile=fso.OpenTextFile(result,2,True) '创建文本流对象,文件名为变量result所存储的字符串
- objtextfile.Write(str) '将变量str中的文件路径写入html文件中
- objtextfile.Close '关闭文本流对象
- Set objtextfile=Nothing '销毁对象
- End If
- If i>0 Then
- ie.Document.getElementById("header").innerHTML="找到 " & i & " 个匹配,详细信息已保存在 """ & result & """ 文件中。。。"
- Else
- ie.Document.getElementById("header").innerHTML="正在执行文件搜索。。。"
- End If
- WScript.Sleep(20)
- Next
- Set objsubfolders=objfolder.SubFolders '得到当前路径下的所有文件夹的集合
- For Each objsubfolder In objsubfolders '遍历文件夹
- nowpath=path & "\" & objsubfolder.Name '得到新的文件路径
- search nowpath '调用函数自身,从新的路径开始搜索
- Next
- End Function
- Set fso=CreateObject("scripting.filesystemobject")
- Set objdrives=fso.Drives '取得当前计算机的所有磁盘驱动器
- For Each objdrive In objdrives '遍历磁盘
- search objdrive '调用函数
- Next
- '结束时显示的信息
- ie.Document.getElementById("header").innerHTML="扫描已结束。。。"
- If i>0 Then
- ie.Document.getElementById("middle").innerHTML="请打开 """ & result & """ 查看详细搜索结果!"
- Else
- ie.Document.getElementById("middle").innerHTML="没有找到要搜索的文件!"
- End If
- '销毁对象变量,释放内存空间
- Set objdrives=Nothing
- Set objfiles=Nothing
- Set objfile=Nothing
- Set objdrive=Nothing
- Set objfolders=Nothing
- Set objfolder=Nothing
- Set objsubfolders=Nothing
- Set objsubfolder=Nothing
- Set fso=Nothing
一个用vbs查找硬盘所有分区中的指定程序的代码
2020-07-19 11:19VBS代码网 VBS
用vbs实现可以查找指定扩展名的文件,方便大家搜索
延伸 · 阅读
- 2022-03-10详解如何在Ubuntu 16.04上增加Swap分区
- 2022-03-10Ubuntu添加swap分区的方法
- 2022-03-09动态在线扩容root根分区大小的方法详解
- 2022-03-07详解linux添加硬盘分区挂载教程
- 2022-03-02Ubuntu挂载3T硬盘或大于2T磁盘的方法
- 2022-02-24linux 不改变目录结构移动 home 目录到新分区的操
精彩推荐
- VBS
VBS教程:属性-VolumeName 属性
VBS教程:属性-VolumeName 属性...
- VBS
脚本 MsAgent组件 微软精灵 揪出系统自带的宠物
你知道系统里有一个隐藏的宠物吗? 将以下代码保存为后缀为.vbs的文件,再双击运行,看看出来什么?一个可爱的魔法老人!还会说话、移动、吹喇叭…...
- VBS
提供个可以显示农历的VBS代码
本文主要分享一段可以显示农历的VBS代码,具有一定的参考价值,有需要的朋友可以了解一下...
- VBS
VBS教程:属性-AvailableSpace 属性
VBS教程:属性-AvailableSpace 属性 ...
- VBS
可以定时自动关机的vbs脚本
这篇文章主要分享一段可以定时自动关机的vbs脚本代码,有需要的童鞋可以学习下...
- VBS
vbs base64 解密脚本代码
解密base64的vbs小函数,支持英文与数字不支持中文。...
- VBS
VBS教程:对象-Folders 集合
VBS教程:对象-Folders 集合...
- VBS
VBS教程:正则表达式简介 -建立正则表达式
建立正则表达式 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。 可以...