您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何實現(xiàn)批處理bat判斷一個文件在最近5分鐘內(nèi)是否被更新過的代碼”,在日常操作中,相信很多人在如何實現(xiàn)批處理bat判斷一個文件在最近5分鐘內(nèi)是否被更新過的代碼問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何實現(xiàn)批處理bat判斷一個文件在最近5分鐘內(nèi)是否被更新過的代碼”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
問題背景描述:
檢測程式查看一個X.log的文本里的時間,類似2008-11-1 12:00:00 這樣的格式,因為log當(dāng)中每3分鐘會刷新一次,所以時間也會變,現(xiàn)在我的思路是用程式抓到的最新也就是最大的時間和系統(tǒng)時間做比對,超過5分鐘,則說明系統(tǒng)的log已經(jīng)沒有再生成(系統(tǒng)已經(jīng)死了),然后確認(rèn)死了之后,在連接上Oracle的一個DB,把一些欄位的資料 insert into 到一張用來發(fā)送alarm mail的table當(dāng)中去。不知道bat文檔能否實現(xiàn)。
代碼如下:
@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=%1&set mm=%2&set dd=%3&set hh=%4&set 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
endlocal&set %6=%j%&goto :EOF
到此,關(guān)于“如何實現(xiàn)批處理bat判斷一個文件在最近5分鐘內(nèi)是否被更新過的代碼”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。