Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理:读取一个txt文件,并以逗号分隔的行输出最后10行_Batch File - Fatal编程技术网

Batch file 批处理:读取一个txt文件,并以逗号分隔的行输出最后10行

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.

我有一个简单的批处理文件,它从批处理文件中读取最后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.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)"