vbs 查找硬盘分区中指定扩展名文件的实现代码_vbs

挺实用的一段代码,用来深入学习vbs,确实不错咯。

复制代码 代码如下:

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="E:\搜索结果.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

时间: 2024-09-09 06:26:01

vbs 查找硬盘分区中指定扩展名文件的实现代码_vbs的相关文章

Powershell小技巧之使用Get-ChildItem得到指定扩展名文件_PowerShell

当你使用Get-ChildItem获取输出文件列表时,你可能会发现即使用了-Filter参数也会比你预期的结果要多得多. 这里有一个例子,它不仅返回.ps1扩展名文件同时也返回.ps1xml扩展名文件: Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1 为了限制结果集只是你设置后的扩展名,可以添加一个命令的过滤器,以完善的结果: Get-ChildItem -Path C:\wi

php批量删除指定文件夹中指定后缀名文件

直接上代码: 下面的例子我们是以删除指定目录的html为例子哦,如果你要其它文件我们只要把html改成你自己要删除的后缀名就可以了.  代码如下 复制代码 <?php $lanmu = array("action","tiyu","yizhi","sheji","gaoxiao","maoxian","qipai","celue","

python查找目录下指定扩展名的文件实例_python

本文实例讲述了python查找目录下指定扩展名的文件.分享给大家供大家参考.具体如下: 这里使用python查找当前目录下的扩展名为.txt的文件 import os items = os.listdir(".") newlist = [] for names in items: if names.endswith(".txt"): newlist.append(names) print newlist 希望本文所述对大家的Python程序设计有所帮助. 以上是小编

主分区0磁头第1扇区-关于硬盘分区中各主分区(或第2、3主分区)的开始扇区

问题描述 关于硬盘分区中各主分区(或第2.3主分区)的开始扇区 最前面的第一主分区前面的0磁头0道(1扇区或0柱面)可以理解是引导扇区,扩展分区的0磁头这里知道了(是扩展分区表),我的问题是第2.3主分区的开始扇区包括0磁头这里的扇区吗,或它们的的引导扇区从开始磁道(或磁柱)的哪个扇区开始,0磁头这里操作系统能读取吗 解决方案 主分区的起始扇区,在主分区表中是有的.具体你可以用winhex看下. winhex是一个非常有用的工具,它可以把分区表用彩色高亮显示,还可以用模板显示分区参数,而不比自己

Mac App Store 中针对扩展名搜索应用

  自从 OS X 升级到 10.6.6,配合上 Mac App Store,一旦遇到无法识别的文件就会匹配扩展名然后多出一个在 App Store 搜索的按钮.不过你也可以自己在 Mac App Store 里的搜索框,利用一句简单的语法搜索到能够处理指定扩展名的所有应用: extension:exampleExt 比如,输入 extension:doc 搜索到的结果是可以打开 Microsoft Word 文件的所有应用.extension:psd 对应 Photoshop 文件.exten

如何把一个文件复制到指定的一个文件夹里,代码如何写

问题描述 如何把一个文件复制到指定的一个文件夹里,代码如何写,用C#写 解决方案 解决方案二:ft解决方案三:System.IO.File.Copy("c:\123.txt","d:\123.txt"); 解决方案四:还是不明白,是复制到指定的目录解决方案五:System.IO.File.Copy("c:\123.txt","d:\你自己建立的目录\123.txt"); 还是不懂的话,我就没办法了.买本书啃啃吧!

把一个文件复制到指定的一个文件夹里,代码如何写,如何用C#写

问题描述 把一个文件复制到指定的一个文件夹里,代码如何写,如何用C#写 解决方案 解决方案二:uu解决方案三:File.Copy解决方案四:msdn吧

.NET中删除指定文件夹中指定后缀名的所有文件!

问题描述 文件是随机生成的,所以文件名不确定,但具有确定的后缀名,请教如何删除之?? 解决方案 解决方案二:遍历文件夹删除文件就可以了,查查File,Directory类.解决方案三:stringPath;//路径if(System.IO.Directory.Exists(Path)){//SearchthedirectoryDirectoryInfodi=newDirectoryInfo(Path);FileInfo[]f=di.GetFiles("*.xls");//文件夹下的.x

Adsutil.vbs 在脚本攻击中的妙用[我非我原创]_vbs

一.简单介绍  adsutil.vbs是什么?相信用过IIS的网管员不会不知道.这是IIS自带的提供于命令行下管理IIS的一个脚本.位于%SystemDrive%\Inetpub\AdminScripts目录下.足足有95,426 字节大小.这么大的脚本一看就知道功能强大.事实也的确如此.基本上我的感觉它就是个命令行下的"Internet 信息服务管理器".(事实上2000的服务器上%SystemDrive%\Inetpub\AdminScripts下原有20多个vbs文件以供管理.而