递归查询文件名.vbs

 递归查询文件名.vbs

'======================================================================================
'dim ws,fso,f,fd,files,tmpname,url,result,preFix
set ws=createobject("wscript.shell") 
set fso = CreateObject("Scripting.FileSystemObject") 
set fd = fso.getfolder(ws.currentdirectory) 
set files=fd.files 
'生成前缀
result=ws.currentdirectory

result =replace(result ,"\","+")
result =replace(result ,".","_")
result =replace(result ,":","=")
'建立一个文本,存储文件的名字
result= result & "_" & "fileinfos.txt"
set resultFile=fso.createtextfile(result,2,ture)

'开始工作

s=ShowFolderList(ws.currentdirectory,resultFile)

MsgBox "操作完成!文件信息保存于:" & result

'=============================================================================
'--------------------------------------------
'遍历一个路径下的所有文件及文件夹
'参数:folderspec 表示文件路径 例如:d:\javascript
'---------------------------------------------
Function ShowFolderList(folderspec,logFile)
	Dim fso, f, f1, fc, s
	Set fso = CreateObject("Scripting.FileSystemObject")
	If Not fso.FolderExists(folderspec) Then   '判断文件夹是否存在
		s="文件夹不存在"
	else
		Set f = fso.GetFolder(folderspec) '返回与指定的路径中某文件夹相应的 Folder对象
		Set fc = f.files

		For Each f1 in fc  
			s=s & chr(34) & folderspec & "\" & f1.name  & chr(34)& vbCr
			logFile.writeline chr(34) & folderspec & "\" & f1.name  & chr(34)
		Next

		Set ff=f.SubFolders
		For Each f2 in ff  
			s=s&ShowFolderList(f2.Path,logFile) '递归所有子文件夹里的文件
		Next
		If b="" Then a="    "
	End If 
ShowFolderList = s
End Function


网上样例: VBS递归文件夹里的所有文件.vbs

Dim a
a="" '空格
'-------------------------
'作者:菜菜 
'QQ:544795916
'遍历所有磁盘及所有文件及文件夹
'---------------------------
Function ShowDriveList()
	Dim fso, d, dc, s, n
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set dc = fso.Drives '回由本地机器上所有 Drive 对象组成的 Drives 集合
	For Each d in dc
		s = s & d.DriveLetter & " :<br>"
		s=s&"-----驱动类型:"
		Select Case d.DriveType
		Case 0:s =s& "未知<br>"
		Case 1:s =s& "可移动<br>"
		Case 2:s =s& "固定<br>"
		Case 3:s =s& "网络<br>"
		Case 4:s =s& "CD-ROM<br>"
		Case 5:s =s& "RAM 磁盘<br>"
		End select 
		If d.IsReady Then      
			s = s & "-----总容量:" & FormatNumber(d.TotalSize/(1024*1024), 0) & "M<br>"
			s = s & vbCrLf
			s = s & "-----可用空间:" & FormatNumber(d.AvailableSpace/(1024*1024), 0) & "M<br>"
			s=s&"-----文件<br>"
			s=s&ShowFolderList(d.DriveLetter&":\")&"<br>"
		End If 
		s = s &"<hr>" 
	Next
ShowDriveList = s
End Function
'--------------------------------------------
'遍历一个路径下的所有文件及文件夹
'参数:folderspec 表示文件路径 例如:d:\javascript
'---------------------------------------------
Function ShowFolderList(folderspec)
	Dim fso, f, f1, fc, s
	Set fso = CreateObject("Scripting.FileSystemObject")
	If Not fso.FolderExists(folderspec) Then   '判断文件夹是否存在
		s="文件夹不存在"
	else
		Set f = fso.GetFolder(folderspec) '返回与指定的路径中某文件夹相应的 Folder对象
		Set fc = f.files
		a=a&"    "
		For Each f1 in fc  
			s = s &a&f1.name&" 文件大小:"&f1.Size 
			s = s & "<BR>"
		Next

		Set ff=f.SubFolders


		For Each f2 in ff  
			b=f2.name
			s = s &a&f2.name&" 文件大小:"&f2.Size 
			s = s & "<BR>"     
			s=s&ShowFolderList(f2.Path) '递归所有子文件夹里的文件
		Next
		If b="" Then a="    "
	End If 
ShowFolderList = s
End Function
   'Document.write ShowDriveList()       '遍历系统所有文件
   document.write ShowFolderList("D:\javascript") '遍历路径下的所有文件


 

 

要在目录及其子目录中递归搜索特定文件名,可以使用 `grep` 命令结合 `-r`(或 `--recursive`)选项来实现。此选项允许在指定目录及其所有子目录中递归地搜索文件内容[^1]。 ### 1. 只在特定类型的文件中搜索 如果希望仅在某些特定类型的文件中进行搜索,例如 `.php` 和 `.html` 文件,可以使用 `--include` 参数配合通配符来限定搜索范围: ```bash grep "search_term" /path/to/directory -r --include=*.{php,html} ``` 此命令将在 `/path/to/directory` 目录及其子目录下的所有 `.php` 和 `.html` 文件中搜索字符串 `"search_term"`。 ### 2. 排除特定文件或文件列表 若希望从搜索结果中排除某些文件,可以使用 `--exclude` 或 `--exclude-from` 参数: - **排除单个文件**(如所有名为 `README` 的文件): ```bash grep "search_term" /path/to/directory -r --exclude=README ``` - **排除文件列表**(通过 `--exclude-from` 指定一个包含需排除文件名的文件): ```bash grep "search_term" /path/to/directory -r --exclude-from=filelist.txt ``` 其中 `filelist.txt` 应该包含你想要排除的文件名列表,每行一个文件名。 ### 3. 忽略大小写与显示行号 为了使搜索更加灵活,还可以结合其他常用参数: - **忽略大小写**:添加 `-i` 参数以忽略大小写差异。 - **显示行号**:添加 `-n` 参数以在输出中显示匹配行的行号。 - **静默模式**:添加 `-s` 参数以抑制错误信息(如权限问题)。 示例命令如下: ```bash grep "search_term" /path/to/directory -rni --include=*.{php,html} ``` 此命令将忽略大小写、显示行号,并只在 `.php` 和 `.html` 文件中递归搜索 `"search_term"`。 ### 4. 使用正则表达式 如果你需要更复杂的搜索模式,可以使用 `-E` 参数启用扩展正则表达式支持: ```bash grep -E "pattern1|pattern2" /path/to/directory -r ``` 这将递归搜索目录中所有匹配 `pattern1` 或 `pattern2` 的行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值