Batch file (MS-DOS,批处理文件)如何写入日志文件,只保留最近的前1000行

Batch file (MS-DOS,批处理文件)如何写入日志文件,只保留最近的前1000行,batch-file,dos,Batch File,Dos,在Windows Server 2003环境中,我们有一个批处理文件(*.bat),它写入特定目录中的文本日志文件 为了防止此文件变得太大,我想知道如何修改批处理文件,以便只保留最近的前1000行 提前感谢您的友好合作。您可以随时调用以下例程来修剪日志文件,只保留最后1000行。文件名作为第一个也是唯一的参数传递 :KeepLast1000 @echo off setlocal set keep=1000 if not exist "%~1" exit /b set skip=0 for /f

在Windows Server 2003环境中,我们有一个批处理文件(*.bat),它写入特定目录中的文本日志文件

为了防止此文件变得太大,我想知道如何修改批处理文件,以便只保留最近的前1000行


提前感谢您的友好合作。

您可以随时调用以下例程来修剪日志文件,只保留最后1000行。文件名作为第一个也是唯一的参数传递

:KeepLast1000
@echo off
setlocal
set keep=1000
if not exist "%~1" exit /b
set skip=0
for /f  %%N in ('find /c /v "" ^<"%~1" 2^>nul') do if %%N gtr %keep% set /a skip=%%N-keep
more +%skip% "%~1" >"%~1.new"
move /y "%~1.new" "%~1" >nul
:KeepLast1000
@回音
setlocal
设置保持=1000
如果不存在“%~1”退出/b
设置跳过=0
对于/f%%N in('find/c/v“^nul'),如果%%N gtr%keep%set/a skip=%N-keep,则执行该操作
更多+%skip%%“%~1”>“%~1.新建”
移动/y“%~1.新“%~1”>nul