脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - VBS - 一个用vbs查找硬盘所有分区中的指定程序的代码

一个用vbs查找硬盘所有分区中的指定程序的代码

2020-07-19 11:19VBS代码网 VBS

用vbs实现可以查找指定扩展名的文件,方便大家搜索

  1. On Error Resume Next '忽略所有错误  
  2. Dim filename '声明变量  
  3. Dim re  
  4. Set re=New RegExp '建立正则表达式对象实例  
  5. re.Pattern="^([a-z]|[A-Z])+\:\\\w+\.vbs$"  
  6. If re.Test(WScript.ScriptFullName)=False Then  
  7.  MsgBox "请在磁盘根目录下运行本程序,否则搜索结果可能会不正确!",,"MessageBox"  
  8.  WScript.Quit  
  9. End If  
  10. re.Pattern="^([A-Za-z0-9_]|[^\x00-\xff])+\.[a-zA-Z]{1,4}$"  '声明正则表达式的匹配模式,主要用来检验用户输入的文件名是否正确  
  11. Do   
  12.  filename=InputBox("请输入你要搜索的文件名:","MessageBox")  
  13.  If filename="" Then WScript.Quit  '如果输入为空则退出脚本  
  14.  If re.Test(filename)=False Then  
  15.   MsgBox "请输入合法的文件名!",,"MessageBox"  
  16.  End If  
  17. Loop While re.Test(filename)=False   '直到用户输入正确的文件名时才跳出循环。  
  18. Set re=Nothing  
  19. Dim ie  
  20. Set ie=WScript.CreateObject("internetexplorer.application")   '建立IE对象,用来显示搜索状态  
  21. ie.menubar=0   '不显示IE对象菜单栏  
  22. ie.AddressBar=0   '不显示IE对象地址栏  
  23. ie.ToolBar=0   '不显示IE对象工具栏  
  24. ie.StatusBar=0   '不显示IE对象状态栏  
  25. ie.FullScreen=1   '全屏化IE对象  
  26. ie.Width=640   '设置IE对象宽度  
  27. ie.Height=120   '设置IE对象高度  
  28. ie.Resizable=0   '设置IE对象大小是否可以被改动  
  29. ie.Navigate "about:blank" '设置IE对象默认指向的页面  
  30. ie.Left=Fix((ie.Document.parentwindow.screen.availwidth-ie.Width)/2)  '设置IE对象左边距  
  31. ie.top=Fix((ie.document.parentwindow.screen.availheight-ie.height)/2)  '设置IE对象右边距  
  32. ie.visible=1  '设置IE对象是否可视  
  33. With ie.Document '以下为在IE对象中写入页面,跟一般的HTML没有区别  
  34.  .write "<html>"  
  35.  .write "<head>"  
  36.  .write "<title>文件扫描状态</title>"  
  37.  .write "<meta http-equiv=""content-type"" content=""text/html;charset=gb2312"">"  
  38.  .write "<style><!--"  
  39.  .write "body { background:#000000;text-align:center;margin:0px auto; }"  
  40.  .write "* { font-family:Arial;font-size:9pt;color:#00cc00;line-height:140%; }"  
  41.  .write "a:link,ahover,a:visited { text-decoration:none; }"  
  42.  .write "#scanstatus { text-align:left;margin:15px; }"  
  43.  .write "#header { width:100%;height:20px; }"  
  44.  .write "#middle { width:100%;height:50px; }"  
  45.  .write "#footer { width:100%;height:20px;text-align:right; }"  
  46.  .write "--></style>"  
  47.  .write "</head>"  
  48.  .write "<body scroll=no>"  
  49.  .write "<div id=""scanstatus"">"  
  50.  .write "<div id=""header"">正在启动搜索程序。。。</div>"  
  51.  .write "<div id=""middle""></div>"  
  52.  .write "<div id=""footer""><a href=""#"" onclick=""window.close()"">退出程序</a></div>"  
  53.  .write "</div>"  
  54.  .write "</body>"  
  55.  .write "</html>"  
  56. End With  
  57. '定义文件系统对象变量  
  58. Dim fso   
  59. Dim objfolder  
  60. Dim objsubfolders  
  61. Dim objsubfolder  
  62. Dim objfiles  
  63. Dim objfile  
  64. Dim objdrives  
  65. Dim objdrive  
  66. Dim objtextfile  
  67. Dim str:str=""  
  68. Dim i:i=0 '计数器变量  
  69. Dim result  
  70. result="C:\搜索结果.html" '搜索结果保存文件变量  
  71. '一个过程,用来遍历硬盘文件  
  72. Function search(path)  
  73.  Set objfolder=fso.getfolder(path) '获得当前路径  
  74.  Set objfiles=objfolder.Files  '获得当前路径下的所有文件集合  
  75.  For Each objfile In objfiles  '开始遍历文件集合  
  76.   ie.Document.getElementById("middle").innerHTML=objfile.Path  '用到IE对象的文档对象模型,将当前搜索的文件路径写入ID为middle的DIV中  
  77.   If objfile.Name=filename Then '如果当前文件名与用户输入的文件名一致  
  78.    i=i+1      '计数器加一  
  79.    str=str & objfile.Path & "<br>"  
  80.    Set objtextfile=fso.OpenTextFile(result,2,True)  '创建文本流对象,文件名为变量result所存储的字符串  
  81.    objtextfile.Write(str)  '将变量str中的文件路径写入html文件中  
  82.    objtextfile.Close   '关闭文本流对象  
  83.    Set objtextfile=Nothing  '销毁对象  
  84.   End If  
  85.   If i>0 Then  
  86.    ie.Document.getElementById("header").innerHTML="找到 " & i & " 个匹配,详细信息已保存在 """ & result & """ 文件中。。。"  
  87.   Else  
  88.    ie.Document.getElementById("header").innerHTML="正在执行文件搜索。。。"  
  89.   End If  
  90.   WScript.Sleep(20)  
  91.  Next  
  92.  Set objsubfolders=objfolder.SubFolders  '得到当前路径下的所有文件夹的集合  
  93.  For Each objsubfolder In objsubfolders  '遍历文件夹  
  94.   nowpath=path & "\" & objsubfolder.Name '得到新的文件路径  
  95.   search nowpath  '调用函数自身,从新的路径开始搜索  
  96.  Next  
  97. End Function   
  98. Set fso=CreateObject("scripting.filesystemobject")  
  99. Set objdrives=fso.Drives '取得当前计算机的所有磁盘驱动器  
  100. For Each objdrive In objdrives  '遍历磁盘  
  101.  search objdrive  '调用函数  
  102. Next  
  103. '结束时显示的信息  
  104. ie.Document.getElementById("header").innerHTML="扫描已结束。。。"  
  105. If i>0 Then  
  106.  ie.Document.getElementById("middle").innerHTML="请打开 """ & result & """ 查看详细搜索结果!"  
  107. Else  
  108.  ie.Document.getElementById("middle").innerHTML="没有找到要搜索的文件!"  
  109. End If  
  110. '销毁对象变量,释放内存空间  
  111. Set objdrives=Nothing  
  112. Set objfiles=Nothing  
  113. Set objfile=Nothing  
  114. Set objdrive=Nothing  
  115. Set objfolders=Nothing  
  116. Set objfolder=Nothing  
  117. Set objsubfolders=Nothing  
  118. Set objsubfolder=Nothing  
  119. Set fso=Nothing 

延伸 · 阅读

精彩推荐