【问题标题】:Cut one line from a txt file and insert it into a new one using batch command从 txt 文件中剪切一行并使用批处理命令将其插入到新文件中
【发布时间】:2017-08-24 11:20:02
【问题描述】:

我对批处理编程几乎一无所知,我想做以下事情。

我有一个可能有一行或多行的 .txt 文件,我想剪切最后一行并将其插入另一个 .txt 文件。在问这个问题之前,我一直在做一些研究,但为了实现这一目标,我找不到任何“可以理解”的东西。

此外,找到的最合适的 QA 是 Stack 上的 this 链接,但我不知道如何“翻译”它。

这是我在 .txt 文件中的行

S,1,______,_,__;Cutii carton 370*290*2;1.00;1.000;1;1;1;0;0;
T,1,______,_,__;0;1.00;;;;

我想从这个 .txt 文件中删除以“T”开头的行并插入到一个新的 .txt 文件中。

谁能帮帮我?谢谢

编辑

请看print screen

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    从文本文件中获取最后(非空)行:

    for /f "delims=" %%A in (ttt.txt) do set last=%%A
    

    将其附加到另一个文件:

    echo %last%>>ttt_lastline.txt
    

    【讨论】:

      【解决方案2】:


      使用这个:

      @For /F %%A In ('Find /C /V ""^<"%~1"') Do @Set/A _=%%A-1
      @(More +%_% "%~1")>"%~dpn1_lastline.txt"
      

      只需将您的文本文件拖放到批处理文件上,最后一个非空行将输出到与拖放文件位于同一目录中的文本文档中。输出文件将与删除的文件同名,但在末尾附加_lastline

      [编辑]
      如果你想硬编码文件名,那么:

      @For /F %%A In ('Find /C /V ""^<"File.txt"') Do @Set/A _=%%A-1
      @(More +%_% "File.txt")>"File_lastline.txt"
      

      您可能更喜欢以下方法,尽管它可能会更慢,尤其是当File.txt 变大时:

      @For /F "UseBackDelims=" %%A In ("File.txt") Do @Set "last=%%A"
      @(Echo %last%)>"File_lastline.txt"
      

      【讨论】:

      • 这行得通。但是假设最终用户无法将文件拖放到批处理命令上,而只能通过外部程序调用将提取最后一行的批处理命令。
      • %~1 是输入文件,如果您使用文件名参数运行批处理脚本,那么它仍将按设计工作。 "MyBatch.cmd" "C:\Users\cdrrrr\Desktop\testfile.txt" 如果您没有像那样运行脚本,那么除非您提供该信息,否则我无法告诉您如何调整内容以适合您。
      • @For /F %%A In ('Find /C /V ""^&lt;"ttt.txt"') Do @Set/A _=%%A-1 @(More +%_% "ttt.txt")&gt;"%~dpn1_lastline.txt" - 像这样?
      • 我已经添加了一个编辑来根据上面的评论给出一个例子!
      • 这不是工作人员。我有 ttt.txt 文件,上面有两行,MyBatch.cmd 带有您提供的代码,以及在运行 bat 后为空的输出 ttt_lastline.txt,即使在“修改日期”列中指示符分钟正在改变......所有文件都在同一个目录中。
      【解决方案3】:

      要剪切多个文件的前“n”行并将它们按顺序连接成一个,您可以使用:

      For %f in (list-filename*.txt) do more +n(number of lines to be removed) > type >> Outputfilename.txt %f
      

      【讨论】:

        猜你喜欢
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        • 2015-10-12
        • 1970-01-01
        • 2015-08-25
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        相关资源
        最近更新 更多