批处理bat获取文件夹内的最新文件的修改时间,与当前系统时间进行对比 100
bat批处理命令,公司有个服务器项目,每隔一段时间就无反应,具体报错没找到,但是发现服务器没反应的时候是没有生成日志的,正常情况下是一个小时创建一条日志,所以就想写个ba...
bat批处理命令,公司有个服务器项目,每隔一段时间就无反应,具体报错没找到,但是发现服务器没反应的时候是没有生成日志的,正常情况下是一个小时创建一条日志,所以就想写个bat批处理命令获取日志文件夹里面最新日志的修改时间,与当前系统时间做比较,如果相差的时间大于20分钟,则重启服务器。(打算设置定时任务程序,1个小时运行一次),日志文件夹是D:\sk(里面很多文件,要获取修改时间最新的来与系统时间判断),服务器是d:\test.exe
展开
1个回答
展开全部
@echo off
set @=q&set/an=0x53b7e0b4
title Any question +%@%%@% %n%
cd /d "%~dp0"
set "logfolder=D:\sk"
set "exefile=D:\test.exe"
set "record=记录.txt"
if not exist "%logfolder%" (echo;"%logfolder%" not found&pause&exit)
if not exist "%exefile%" (echo;"%exefile%" not found&pause&exit)
>"%tmp%\t.t" echo;WSH.echo DateDiff("n",CreateObject("Scripting.FileSystemObject").GetFile(WSH.Arguments(0)).DateLastModified,now)
cd.>"%record%"
for /f %%a in ("%exefile%") do set "exename=%%~nxa"
:loop
cls
for /f "delims=" %%a in ('dir /a-d /b /tw /o-d "%logfolder%\*.log"') do (set fname=%%a&goto break)
:break
if not defined fname (goto end)
echo;"%fname%"
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\t.t" "%logfolder%\%fname%"') do (
echo;[%%a]
if %%a geq 12 (
taskkill /f /im "%exename%" /t
start "" "%exefile%"
>>"%record%" echo;restart at %date% %time%
)
)
:end
echo;Any question +%@%%@% %n%
if exist "%windir%\System32\timeout.exe" (timeout /t 60 /nobreak) else (>nul ping /n 60 0)
goto loop
追问
谢谢,今天请假了,五一假后回公司试一下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询