vbs查找文件夹的子文件夹并将其保存在txt中

呜呜呜呜呜呜呜呜呜呜呜呜呜哇啊啊啊啊啊啊啊啊啊啊啊啊大大阿达呜呜呜哇

第1个回答  推荐于2018-01-05

So easy.

联合CMD就很简单

src = "D:\" '要查找的文件夹
Set shell = CreateObject("WScript.Shell")
shell.Exec("cmd.exe /Q /C ""dir/s/b/ad """ & src & """ > a.txt""")

这样不算“犯规”吧,似乎没答到重点,不过写起来很简单也不错了。

“a.txt”是保存的txt文件,绝对路径或相对路径都行(老掉牙的说明了。。。)

借用CMD可以弥补VBS的缺陷:没有自带通配符搜索文件的功能,就算有也比较复杂。而借用CMD可以极大地避免写冗长的算法,代码简洁而有效。这里借用了CMD后就可以尽情发挥想象,想搜索多复杂匹配文件都可以,还可以把搜索到文件名传回VBS给VBS处理,只要

Set res = shell.Exec("...")
Do while res.Stdout.AtEndOfStream
    MsgBox res.Stdout.ReadLine
Loop

类似这样的方式就可以任意处理从CMD得到的结果

本回答被网友采纳
第2个回答  推荐于2016-10-28
'清单
'1.获得文件夹中的所有.txt文件
'2.将所有文件移动到E:盘'函数MoveTxtFiles(folderspec)
'parameter1 folderspec类型字符串 文件夹名Function MoveTxtFiles(folderspec)
Dim fso,fl,fs
Set fso=CreateObject("Scripting.FileSystemObject")
Set fl = fso.GetFolder(folderspec)
Set fs=fl.Files
for each f in fs
If SearchTxtFile("\.txt$",f.Name) Then
f.Move("E:\")
End If
next
Set fso=Nothing
End Function '函数SearchTxtFile(pattern,Fn) 匹配 文件扩展名
'parameter1 pattern 匹配模式 字符串类型
'parameter2 Fn 文件名 字符串类型
Function SearchTxtFile(pattern,Fn)
Dim regEx,Matches
Set regEx=new RegExp
regEx.Pattern = pattern
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(Fn)
for each Match in Matches
SearchTxtFile=True
Exit Function
Next
SearchTxtFile=False
Set regEx=Nothing
End Function
MoveTxtFiles("C:\")本回答被提问者采纳
相似回答