批/ vbs读取文本文件

时间:2011-03-17 14:16:40

标签: vbscript batch-file wsh

我想编写一个批处理脚本/ vbs,它应该逐行读取文本文件并搜索关键字。如果找到关键字,它应该重定向到输出文件。

示例日志如下,

星期二01/09/2000 下午06:53
-------- C:\数据--------
C:\ DATA \ 2009年
C:\ DATA \ 2010
C:\ DATA \ 2011
C:\ DATA \则Filename.txt
C:\ DATA \ Fileusage
C:\ DATA \ Guidline.xml
C:\数据\ 2009 \ 12
C:\数据\ 2009 \ 12 \ 01 \ 667e33999.txt
C:\数据\ 2009 \ 12 \ 01 \ 667e45454999.xml
C:\数据\ 2009 \ 12 \ 09 \ 667dfder999.pdf
C:\数据\ 2009 \ 12 \ 09 \ 667e332324.pdf
C:\数据\ 2009 \ 12 \ 09 \ 867fdfe2323.pdf
C:\资源\发现\ 233.txt
C:\资源\发现\ 234.txt
C:\资源\发现\ 235.txt
C:\资源\发现\ 236.txt
C:\资源\发现\ 237.txt
C:\资源\发现\ 238.txt
C:\资源\ \调查结果历时\ 433.txt
C:\资源\ \调查结果历时\ 239.txt
C:\资源\ \调查结果历时\ 890.txt
C:\资源\ \调查结果历时\ 121.txt
C:\资源\ \调查结果历时\ 009.txt
C:\资源\ \调查结果历时\ 999.txt
列出的文件总数:
12个文件7,234,336个字节
0 Dir(s)3,413,392,345字节免费

基本上我想要捕获任何以C:\ Data \ Year \ Month和C:\ Resource \ Findings \ Lasted

开头的行

输出如下

C:\数据\ 2009 \ 12 \ 01 \ 667e33999.txt
C:\数据\ 2009 \ 12 \ 01 \ 667e45454999.xml
C:\数据\ 2009 \ 12 \ 09 \ 667dfder999.pdf
C:\数据\ 2009 \ 12 \ 09 \ 667e332324.pdf
C:\数据\ 2009 \ 12 \ 09 \ 867fdfe2323.pdf
C:\资源\ \调查结果历时\ 433.txt
C:\资源\ \调查结果历时\ 239.txt
C:\资源\ \调查结果历时\ 890.txt
C:\资源\ \调查结果历时\ 121.txt
C:\资源\ \调查结果历时\ 009.txt
C:\ Resource \ Findings \ Lasted \ 999.txt

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可以使用findstr

findstr /b /r "C:\\Resource\\Findings\\Lasted\\ C:\\Data\\[0-9][0-9][0-9][0-9]\\[0-9][0-9]\\." data.dump

findstr用于过滤文件中的行,这是我们在这里所做的。首先,我们启用与/r的正则表达式匹配。不要被欺骗,那些是非常非常小的正则表达式,偶尔会打破,所以让它们正确是很棘手的。 /b用于匹配行的开头。然后是一个以空格分隔的要查找的列表,在这种情况下,C:\Resource\Findings\Lasted\C:\Data\Year\Month,其中年份为4,月份为2位。