有没有办法使用批处理文件将日志文件的最后 n 行复制到新的文本文件中。
日志文件:
line 1
line 2
line 3
line 4
line 5
n = 2
新文件:
line 4
line 5
你可以试试下面的代码:
@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 个字符的文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句