【发布时间】:2017-01-11 13:53:05
【问题描述】:
我有一个简单的批处理文件,它从批处理文件中读取最后 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
另外,是否可以在新的 txt 文件中反转行顺序,使最后一行位于逗号分隔行的开头
我所追求的示例:
第一行
第2行
第3行
第4行
输出为
line4, line3, line2, line1
【问题讨论】:
-
只需使用另一个 FOR /F 来解析
MORE命令的输出,而不是将其重定向到文件。然后不要创建变量并附加到它,只需将新行添加到开头即可。 -
for /F "delims=" %%a in ('more /e +%startLine% "C:\Path To File\File.txt"') do set "output=%%a, !output!"和echo %output:~0,-2%。开头别忘了setlocal EnableDelayedExpansion... -
只是一点点信息。如果您的文件超过 65,534 行,则此代码将失败,因为 MORE 命令将在该点暂停。
-
感谢 Squash 和 Aacini 的回复,我使用下面的 powershell 只是因为行数限制和未来的校对,但你的也可以工作
标签: batch-file