BorlandIMHO
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору zh76internetru Не учитывая нюанса: renamer.cmd Код: @echo OFF setlocal EnableDelayedExpansion REM Имя файла для отслеживания размера set "LOGFILE=x:\path to\logfile.txt" REM Размер, при превышении которого файл нужно переименовать set /A SIZELIMIT=524288000 for %%F in ("%LOGFILE%") do if %%~zF GTR %SIZELIMIT% ( call :GETUTCTIMESTAMP TIMESTAMP ren "%LOGFILE%" "logfile_!TIMESTAMP!.txt" ) goto :EOF :GETUTCTIMESTAMP for /f "usebackq tokens=1,2 delims==" %%A in (`wmic path Win32_UTCTime get year^,month^,day^,hour^,minute^,second /value ^| find "="`) do ( set /a TMPVAL=%%B if !TMPVAL! LSS 10 ( set UTC_%%A=0%%B ) else ( set UTC_%%A=%%B ) ) set %1=%UTC_Year%%UTC_Month%%UTC_Day%_%UTC_Hour%%UTC_Minute%%UTC_Second% goto :EOF | При переименовании вместо сплошной нумерации удобнее, ИМХО, добавлять таймштамп, а не ничего никому не говорящий порядковый номер, что и реализовано у меня. Скрипт добавить в таск шедулер на запуск с любой потребной частотой. Хоть каждую минуту, хоть раз в год. Касательно нюанса: вероятность повреждения строки при построчной записи в файл близка к нулю, хотя тут, конечно, всё зависит от программы, пишущей лог...
| Всего записей: 3099 | Зарегистр. 12-10-2006 | Отправлено: 21:53 24-09-2021 | Исправлено: BorlandIMHO, 23:33 24-09-2021 |
|