Board logo

标题: vbs 遍历磁盘搜索文件,会跳过个别目录问题? [打印本页]

作者: vcstone     时间: 2008-1-29 18:24    标题: vbs 遍历磁盘搜索文件,会跳过个别目录问题?

爱虫遍历文件代码:
   sub scan(folder_)  'scan函数定义,
  on error resume next   '如果出现错误,直接跳过,防止弹出错误窗口
  set folder_=fso.getfolder(folder_)
     set files=folder_.files    ' 当前目录的所有文件集合
     for each file in filesext=fso.GetExtensionName(file)  '获取文件后缀
     ext=lcase(ext)     '后缀名转换成小写字母
     if ext="mp5" then  '如果后缀名是mp5,则进行感染。请自己建立相应后缀名的文件,最好是非正常后缀名 ,以免破坏正常程序。
    Wscript.echo (file)
   end if
  next
  set subfolders=folder_.subfolders
  for each subfolder in subfolders  '搜索其他目录;递归调用
   scan( )  
   scan(subfolder)
  next
  end sub

用这个代码进行全盘搜索时会有个别目录跳过不扫描(我电脑上就是windows目录),去掉容错语句就会提示没有权限,
这位兄弟也提到了,代码都是差不多:
http://www.cn-dos.net/forum/view ... B%E6%90%9C%E7%B4%A2

当指定c:\windows来扫描的时候就不会提示没有权限.不明白是什么原因,请高人指点一下?
作者: vcstone     时间: 2008-1-30 15:46
怎么都没人讨论一下这个呢,批处理的遍历就有了,似乎VBS遍历磁盘都没有一个很好的方案.呵呵?
作者: fastslz     时间: 2008-1-30 15:52
这里讨论DOS,CMD批处理为主,DOS,CMD解决不了的问题才考虑VBS脚本
wmic能遍历硬盘上某文件,VBS当然轻而一举的了
作者: vcstone     时间: 2008-1-30 16:29


  Quote:
Originally posted by fastslz at 2008-1-30 03:52 PM:
这里讨论DOS,CMD批处理为主,DOS,CMD解决不了的问题才考虑VBS脚本
wmic能遍历硬盘上某文件,VBS当然轻而一举的了

这里讨论DOS,CMD批处理为主;--明白
wmic能遍历硬盘上某文件--似乎有点了解

只是不明白为什么上面的递归遍历会跳过个别目录?
还有.暂时也没搜索到比较完好的遍历磁盘搜文件代码.
作者: vcstone     时间: 2008-1-30 16:31
还是就是对DOS了解真是甚忽,自己在学着vbs,所以希望能有vbs的解决方法.