【问题标题】:how to copy a single instance of a string from one text file into a new text file?如何将字符串的单个实例从一个文本文件复制到一个新的文本文件中?
【发布时间】:2013-01-15 23:39:35
【问题描述】:

我有一个包含 n 行的文本文件。 m 行包含我感兴趣的字符串 (m

谢谢! 保罗·萨菲尔

【问题讨论】:

    标签: batch-file copy dos findstr


    【解决方案1】:

    鉴于您的 FINDSTR 命令可以定位您的 m 行(它可以根据您的需要简单或复杂)

    findstr "search" "fileName.txt"
    

    然后您可以使用 FOR /F 循环处理该命令的结果。您可以在第一个匹配行之后使用 GOTO 跳出循环。

    for /f "delims=" %%A in ('findstr "search" "fileName.txt"') do (
      echo %%A >>"outFile.txt"
      goto :break
    )
    :break
    

    FOR 命令是可用于批处理的更复杂的命令之一。有很多选择。您可以通过在命令提示符下键入 HELP FORFOR /? 来获取有关命令的帮助。

    “DELIMS=”选项禁用将行解析为标记。如果没有该选项, FOR /F 会将每一行分成由空格或制表符分隔的标记。分隔符列表可以设置为其他字符,或者在您的情况下设置为空。

    我上面给出的代码将跳过以 ; 开头的行,因为 FOR /F 将跳过任何以 EOL 字符开头的行 - 默认情况下是 ;。您可以将 EOL 字符更改为任何单个字符。但是,如果您不知道匹配行的开头可能是什么,那么您就不知道 EOL 使用什么字符。完全禁用所有令牌解析和 EOL 跳行的语法很奇怪:

    for /f delims^=^ eol^= %%A in (...) do ...
    

    【讨论】:

    • @PaulSafier - 如果您得到的答案完全解决了您的问题,那么您应该通过单击左上角附近的复选标记来接受它。该动作让其他人知道问题已被回答,它会奖励您 2 点声望,并奖励答案发布者 15 点。对于给定的问题,只能接受 1 个答案。达到 15 分后,您还可以对答案进行投票。赞成票奖励回答者 10 分。您可以对任何您认为有用的答案进行投票,甚至可以对其他人的问题进行投票。
    • 完成。谢谢。 ——保罗·萨菲尔。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2012-01-05
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多