Batch file 批处理:读取一个txt文件,并以逗号分隔的行输出最后10行
我有一个简单的批处理文件,它从批处理文件中读取最后10行,然后将这10行输出为一个新的txt文件,但我需要将其输出为逗号分隔的行/字符串Batch file 批处理:读取一个txt文件,并以逗号分隔的行输出最后10行,batch-file,Batch File,我有一个简单的批处理文件,它从批处理文件中读取最后10行,然后将这10行输出为一个新的txt文件,但我需要将其输出为逗号分隔的行/字符串 @echo off for /f %%i in ('find /v /c "" ^< C:\Path To File\File.txt') do set /a lines=%%i set /a startLine=%lines% - 10 more /e +%startLine% C:\Path To File\File.txt > Output.
@echo off
for /f %%i in ('find /v /c "" ^< C:\Path To File\File.txt') do set /a lines=%%i
set /a startLine=%lines% - 10
more /e +%startLine% C:\Path To File\File.txt > Output.txt
此小powershell脚本将执行以下操作:
$Lines = Get-Content .\Lines.txt|select -last 10
($Lines[($Lines.Length-1)..0]) -join(', ')|Set-Content Lines-new.txt
要批量包装主题,请执行以下操作:
@echo off
Powershell -command "($Lines=GC .\Lines.txt|select -last 10);(($Lines[($Lines.Length-1)..0]) -join(' ')|Set-Content Lines-New.txt)"
只需使用另一个FOR/F解析
MORE
命令的输出,而不是将其重定向到文件。然后,不要创建一个变量并附加它,只需在开头添加新行。对于/F“delims=“%%a in('more/e+%startine%”C:\Path to File\File.txt“),请设置“output=%%a,!output!”
和echo%output:~0,-2%
。不要忘记在开始时设置本地EnableDelayedExpansion,这只是一点小信息。如果您的文件超过65534行,此代码将失败,因为MORE命令将在该点暂停。感谢您的响应Squash和Aacini,我使用下面的powershell一个,只是因为行数限制和将来的验证,但您的也会工作得很好。我以前从未查看过powershell,但这非常有效,谢谢
@echo off
Powershell -command "($Lines=GC .\Lines.txt|select -last 10);(($Lines[($Lines.Length-1)..0]) -join(' ')|Set-Content Lines-New.txt)"