本文主要是介绍windows环境下全盘搜索特定文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果你想让代码不消失,那就让他自由,让他存在很多FTP服务器上。–linus
想法很简单,动机很龌龊,假如你手里有一台同学的电脑,你突然想知道这台电脑里有没有小电影,那么该怎么办,很简单,给我3s执行以下脚本就ok,代码如下:
set fso = createobject("scripting.filesystemobject")dim l_content
dim sum_folder '文件夹数量
dim sum_file '文件数量
sum_file = 0
sum_folder = 1set disk = fso.Drives '获取所有的盘符,遍历查找
for each d in diskl_content = l_content & getfoldername(d, sum_folder, sum_file)
nextset fp = fso.createtextfile("C:\Users\Administrator\Desktop\find_file.txt") '打印到文件中,路径随意改
fp.write l_content
fp.closefunction getfoldername(path, sum_folder, sum_file)set l_folder = fso.getfolder(path)set l_file = l_folder.Filesfor each file in l_fileif LCase(right(file, 5)) = ".rmvb" then '判断格式是否符合,当然这里可以随便改getfoldername = getfoldername & path & "\" & file.name & vbCrlfsum_file = sum_file + 1end ifnextset l_subfolder = l_folder.subfoldersfor each folder in l_subfolder if folder.name <> "System Volume Information" then '这里的判断是为了避开没有权限的文件夹,避免出现“权限不足“的错误”path = folder '注意folder是文件夹路径,而不是名字sum_folder = sum_folder + 1getfoldername = getfoldername & getfoldername(path, sum_folder, sum_file)end ifnext
end function
代码编写过程中,几点小问题总结一下:*fso.Drives:是获取盘符的意思,通常来说是C:,D:,E:,F:*sum_file:通过这个变量记录搜索到的文件的数量。但是VBS的全局变量和C语言的并不一样,需要传入函数才能改变其具体值。在子函数内部直接使用并不能改变值。sum-folder同理*子函数的两个循环中,file变量就是文件的名字,而folder是文件夹的路径*`if folder.name <> "System Volume Information" then``for each file in l_file` 这条语句会报错,脚本停止运行,于是把这个文件夹屏蔽掉。*msgbox:这个弹框只能打印1024个字节,因此更多的内容会被截取。*子函数getfoldername中的变量getfoldername是为了使这个函数具有返回值,不可替换为其他变量。*以此脚本修改,可以做许多其他功能。
这篇关于windows环境下全盘搜索特定文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!