是否可以使用批处理文件将日志文件的最后n行复制到新的文本文件中。
日志文件:
line 1
line 2
line 3
line 4
line 5
n = 2
新文件:
line 4
line 5
答案 0 :(得分:0)
您可以尝试以下代码:
@echo off
set /A "_LAST=2" & rem // (define the number of last lines to keep)
for /F %%C in ('^< "test.log" find /C /V ""') do set "COUNT=%%C"
set /A "LINES=COUNT-_LAST"
if %LINES% gtr 0 (set "SKIP=+%LINES%") else (set "SKIP=")
> "test.log.new" more %SKIP% "test.log"
此脚本可以处理包含空行的日志文件,此类文件的长度最多为65534个字符。但是,输出文件中最多不能包含65535行。
或尝试以下操作:
@echo off
set /A "_LAST=2" & rem // (define the number of last lines to keep)
for /F %%C in ('^< "test.log" find /C /V ""') do set "COUNT=%%C"
set /A "LINES=COUNT-_LAST"
if %LINES% gtr 0 (set "SKIP=skip^=%LINES%") else (set "SKIP=")
> "test.log.new" (
for /F usebackq^ %SKIP%^ delims^=^ eol^= %%L in ("test.log") do (
echo(%%L
)
)
这一行没有行数限制。但是,它不能处理包含空行等长度超过8190个字符的文件。