Я нашел, что это решение лучше всего работает для создания файла журнала, который поддерживает себя:
setlocal enabledelayedexpansion
SET /A maxlines= 10
set "cmd=findstr /R /N "^^" "filename.txt" | find /C ":""
for /f %%a in ('!cmd!') do set linecount=%%a
GOTO NEXT
:NEXT
FOR /F %%A IN ("filename.txt") DO (
IF %linecount% GEQ %maxlines% GOTO ExitLoop
echo %clientname% %Date% %Time% >> "filename.txt")
EXIT
:ExitLoop
echo %clientname% %Date% %Time% > "filename.txt"
EXIT
Включены переменные среды:% clientname%, имя компьютера удаленного клиента% Date% - текущая дата, а% Time% - текущее время. : NEXT вызывается после получения количества строк в файле. Если число строк файла больше, чем переменная% maxlines%, он переходит к: EXITLOOP, где он перезаписывает файл, создавая новую строку с первой строкой информации. если она меньше переменной% maxlines%, она просто добавляет строку в текущий файл.