批处理bat获取文件夹内的最新文件的修改时间,与当前系统时间进行对比 100

bat批处理命令,公司有个服务器项目,每隔一段时间就无反应,具体报错没找到,但是发现服务器没反应的时候是没有生成日志的,正常情况下是一个小时创建一条日志,所以就想写个ba... bat批处理命令,公司有个服务器项目,每隔一段时间就无反应,具体报错没找到,但是发现服务器没反应的时候是没有生成日志的,正常情况下是一个小时创建一条日志,所以就想写个bat批处理命令获取日志文件夹里面最新日志的修改时间,与当前系统时间做比较,如果相差的时间大于20分钟,则重启服务器。(打算设置定时任务程序,1个小时运行一次),日志文件夹是D:\sk(里面很多文件,要获取修改时间最新的来与系统时间判断),服务器是d:\test.exe 展开
 我来答
qop_dob
2019-04-28 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3967万
展开全部
@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
追问
谢谢,今天请假了,五一假后回公司试一下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式