我对批量编程几乎一无所知,我想做以下事情。
我有一个.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
答案 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