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得到的结果
'清单滚举族'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:\")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)