• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    批处理bat判断一个文件在最近5分钟内是否被更新过的代码
    POST TIME:2021-10-18 12:18

    问题背景描述:

    检测程式查看一个X.log的文本里的时间,类似2008-11-1 12:00:00 这样的格式,因为log当中每3分钟会刷新一次,所以时间也会变,现在我的思路是用程式抓到的最新也就是最大的时间和系统时间做比对,超过5分钟,则说明系统的log已经没有再生成(系统已经死了),然后确认死了之后,在连接上Oracle的一个DB,把一些栏位的资料 insert into 到一张用来发送alarm mail的table当中去。不知道bat文档能否实现。

    复制代码 代码如下:

    @echo off
    set SrcFile=D:/a.txt
    for /f "skip=5 tokens=1-2 delims= " %%a in ('dir /tw "%SrcFile%"') do (
        set "FileDay=%%a %%b"
        goto :compare
    )
    :compare
    call :DateToMins %FileDay:~0,4% %FileDay:~5,2% %FileDay:~8,2% %FileDay:~11,2% %FileDay:~14,3% mFileDay
    call :DateToMins %date:~4,4% %date:~9,2% %date:~12,2% %time:~0,2% %time:~3,2% mToday
    set /a mMinus=mToday-mFileDay
    if %mMinus% gtr 5 (
        echo "The system is down"
    ) else (
        echo "The system is running"
    )
    pause
    goto :eof

    :DateToMins %yy% %mm% %dd% %hh% %mm% result
    setlocal ENABLEEXTENSIONS
    set yy=%1set mm=%2set dd=%3set hh=%4set nn=%5
    if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
    set /a dd=100%dd%%%100,mm=100%mm%%%100
    set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
    set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
    if 1%hh% LSS 20 set hh=0%hh%
    if {%nn:~2,1%} EQU {p} if "%hh%" NEQ "12" set hh=1%hh%set/a hh-=88
    if {%nn:~2,1%} EQU {a} if "%hh%" EQU "12" set hh=00
    if {%nn:~2,1%} GEQ {a} set nn=%nn:~0,2%
    set /a hh=100%hh%%%100,nn=100%nn%%%100,j=j*1440+hh*60+nn
    endlocalset %6=%j%goto :EOF

    上一篇:批处理bat下载FTP服务器上某个目录下的文件
    下一篇:批处理中如何判断参数中含有某些字符串?
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信