bat脚本监听文件大小备份日志

@echo off

:loop
rem --------------------
rem 开始拼接日期+时间字符串,如: 20130726175600
rem 早上小时取出来不是07,前面是个空占位,所以对此做处理
rem 
set hour=%Time:~0,2%
set min=%Time:~3,2%
set sed=%Time:~6,2%
echo %hour%小时
if %hour% lss 10 (
set minhour=0%Time:~1,1%
set dt=%Date:~0,4%%Date:~5,2%%Date:~8,2%%minhour%%min%%sed%
echo %dt%
) else (
set dt=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%min%%sed%
)
echo %dt%

rem 对print.log文件进行解析,读取当前文件大小,并打印
for %%b in (print.log) do (
set filesize=%%~zb
echo %%~dpb%%~nxb  %%~zb字节
)
rem 打印print.log文件当前字节数,如果大于指定值,那么将此文件改名为如:print20130726175600.log
rem 如果没到指定值,那么可以继续写入,如果是监听的话不进行写入
rem 如果正好为此值,打印,在此测试用,实际中用if else就可以
echo %filesize%
if %filesize% gtr 100 (
echo 大了,重新生成一个新的
ren print.log print%dt%.log 
)
if %filesize% lss 100 (
echo 不到100,可继续写
)
if %filesize% equ 100 (
echo 正好够100
) 
pause
echo 打印一行到文件. >>print.log
rem 下面是一种延时,替代这里的暂停,但经过测试发现不精确,延时10秒,实际达到12秒
::echo wscript.sleep wscript.arguments(0)*1000>delay.vbs
::delay.vbs 10
rem 下面也不精确,延时3秒
::echo wscript.sleep(3000)>uu.vbs
::cscript //nologo uu.vbs & del uu.vbs
goto loop

你可能感兴趣的:(文件大小)