Windows脚本按日期文件名统计日志行数
原创@echo off
rem DataServer用于计算原始数据日志中的行数的脚本,by Kyle 2018
setlocal enabledelayedexpansion
rem echo ==================LineCounter==================
set logPath=D:\Server\OriginalData
set nameb=file_server
set named=
set datalog=D:\Server\LineCounter\Logs\Linecount.txt
rem echo !date!!time!
set cm=!TIME:~4,1!
rem echo cm等于!cm!
if !cm! equ 0 (
rem echo 0=10秒后统计...
choice /t 10 /d y /n >nul
)
if !cm! equ 5 (
rem echo 5=10秒后统计...
choice /t 10 /d y /n >nul
)
call :getFileName
rem set fn=plg_spire_server0_!date:~0,4!!date:~5,2!!date:~8,2!!TIME:~0,2!!TIME:~3,1!!mm!
set fname=!logPath!!nameb!_!named!
rem echo fname=!fname!
if exist !fname! (
for /f "tokens=2,3 delims= " %%a in (find /v "" /c !fname!) do echo %%a%%b >> !datalog!
echo !fname! 统计完成
) else (
echo !fname! 不存在
)
goto :eof
:getFileName
echo wscript.echo dateadd("n",-5,now)>a.vbs
rem 请注意,月份和日期是同一数字,之前不会补充0
for /f "tokens=1-6 delims=//: " %%a in (cscript -nologo a.vbs) do (
rem echo %%a-%%b-%%c-%%d-%%e
set y=%%a
set m=%%b
set d=%%c
set h=%%d
set n=%%e
)
if !m! lss 10 ( set m=0!m!)
if !d! lss 10 ( set d=0!d!)
if !h! lss 10 ( set h=0!h!)
set nlen=0
for /f "delims=" %%a in (cmd/u/cecho !n!^|more)do set/a nlen+=1
if !nlen!==2 (
set /a nb = !n:~0,1!
set /a ne = !n:~1,1!
rem echo nb=!nb!
rem echo ne=!ne!
if !nb!==0 (set /a n = !ne!)
)
set /a d1= !n!/10
set /a d2= !n!"%%"10
rem echo d1=!d1!
rem echo d2=!d2!
if !d2! lss 5 ( set /a d2=0 )
if !d2! gtr 5 ( set /a d2=5 )
set n=!d1!!d2!
rem echo n=!n!
del a.vbs
set named=!y!!m!!d!!h!!n!
goto :eof
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除