使用批处理或vbs从文本文件中提取行

时间:2015-07-13 19:47:37

标签: file batch-file text vbscript dos

我有一个文本文件,我试图从中提取以" 422"开头的行。 (每个文件有多个)并将所有这些粘贴到新的文本文件中。我不太确定在vbs或批处理文件中执行此操作是否更好,但这两种方法都可行。提前谢谢。

编辑: 抱歉看起来像是"为我做我的工作"题;我的代码非常简短而且不是很有效,但我会发布到目前为止的内容:

cd"〜%dp1" findstr / B" 422" testfile.txt>> output.txt的

问题是代码没有考虑到422之后的空格,所以我在输出中获得额外的值。

2 个答案:

答案 0 :(得分:1)

正如你的问题闻起来像“我需要完成一份工作”并且不喜欢“我想学习(任何事物)”,使用合适的工具,例如: findstr

type 31392125.txt
a
422b
c
d
e 422
422f
422 g

findstr /B 422 31392125.txt
422b
422f
422 g

阅读docs():

  

除非参数是,否则使用空格分隔多个搜索字符串   以/ C为前缀。例如,'FINDSTR'你好“x.y”搜索   对于文件x.y中的“hello”或“there” 'FINDSTR / C:“你好”x.y'   在文件x.y中搜索“hello there”。

所以:

findstr /B /C:"422 " 31392125.txt
422 g

答案 1 :(得分:0)

FINDSTR /B 422 "fileToSearch" >>"FileToCopyTo"

没有引号,例如

FINDSTR /B 422 C:\Users\John\Documents\filename.txt >>C:\Users\John\Documents\output.txt