从txt文件中剪切一行,然后使用batch命令将其插入到新文件中

时间:2017-08-24 11:20:02

标签: batch-file

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

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

此外,找到最合适的质量检查,是在堆栈上的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

3 个答案:

答案 0 :(得分:0)


使用此:

@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 :(得分:0)

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

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

将其附加到另一个文件:

echo %last%>>ttt_lastline.txt

答案 2 :(得分:0)

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

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