【问题标题】:Extract lines from a text file using batch or vbs [closed]使用批处理或 vbs 从文本文件中提取行 [关闭]
【发布时间】:2023-03-21 17:53:02
【问题描述】:

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

编辑: 抱歉,这似乎是一个“为我做我的工作”的问题;我的代码真的很短而且不是很有效,但我会发布到目前为止的内容:

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

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

【问题讨论】:

  • 你说你在“尝试”——你到底尝试了什么?就目前而言,这个问题只是一个工作请求。
  • 更新了我目前的情况,再次道歉

标签: file batch-file text vbscript dos


【解决方案1】:

由于您的问题听起来像是“我需要完成工作”而不是“我想学习(任何东西)”,因此请使用合适的工具,例如findstr:

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

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

阅读文档():

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

所以:

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

【讨论】:

    【解决方案2】:
    FINDSTR /B 422 "fileToSearch" >>"FileToCopyTo"
    

    不带引号,例如。

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

    【讨论】:

    • 您在命令前面添加了空格?不知道你为什么要这样做...?
    • 行首的四个空格将该行标记为“代码”,以便其格式正确。
    • 啊好吧....我的错....谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多