【发布时间】:2013-05-30 02:35:26
【问题描述】:
我正在尝试制作一个脚本,我们可以从不同子文件夹中的文件列表中将特定字符串输出到文件中。
我的脚本有效,但仅适用于一个目录。我需要一些帮助才能使其与子文件夹一起使用
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set folder = objFSO.GetFolder("D:\vbs\logs\") ' here i have loads of subfolders with *.txt
Set outfile = objFSO.CreateTextFile("D:\vbs\ok\test.txt") ' my output file
for each file in folder.Files
Set testfile = objFSO.OpenTextFile(file.path, ForReading)
Do While Not testfile.AtEndOfStream
If instr (testfile.readline, "central") then ' i output every lines where there is the word "central"
outfile.writeline testfile.readline
End If
if instr (testfile.readline, "version") then ' i use this to parse my output file to get a indication between every files read
num = testfile.readline
mag = Split(num)
elseif testfile.AtEndOfStream = true then
outfile.writeline "Shop " & mag(4)
end if
Loop
testfile.close
next
outfile.close
【问题讨论】:
-
此任务的工具 - 例如。 findstr 或 grep。使用它们或说明为什么不使用。
-
我真的很想使用VBS,因为我花了很多时间来那里。现在,如果我能在子文件夹中使用它,我会为我感到自豪(我是初学者)
-
请参阅stackoverflow.com/a/9454363/603855,了解在递归遍历中使用文件的分步介绍;请参阅stackoverflow.com/a/16895790/603855 了解获取文件夹树中所有文件列表的想法,然后可以按顺序处理。
标签: vbscript text-files subdirectory