标题: [日期时间] 【已解决】批处理怎样根据文件的修改时间间隔执行不同的程序? [打印本页]
作者: oqis 时间: 2015-1-23 13:07 标题: 【已解决】批处理怎样根据文件的修改时间间隔执行不同的程序?
本帖最后由 oqis 于 2015-1-23 21:39 编辑
有个a.htm文件,如果它的修改时间距离现在超过3小时就执行A程序更新它,否则继续使用它进行B程序。
不知道问题说清楚没?帮帮忙~~~
作者: oqis 时间: 2015-1-23 21:38
自己找来的,看不懂但管用~~~~~,留给需要的朋友做个参考吧- setlocal enabledelayedexpansion
- set "fn=D:\a.htm"
- for %%a in ("%fn%") do (
- if exist "%fn%" (
- for /f "tokens=1-10 delims=/-: " %%i in ("%%~ta !date:~,10! !time:~,5!") do (
- set/a y1=%%i,m1=1%%j%%100,d1=1%%k%%100,h1=1%%l%%100,f1=1%%m%%100,y2=%%n,m2=1%%o%%100,d2=1%%p%%100,h2=1%%q%%100,f2=1%%r%%100
- set /a "f=(1461*(y2+(m2-14)/12)/4+367*(m2-2-(m2-14)/12*12)/12-3*((y2+(m2-14)/12)/100+1)/4-1461*(y1+(m1-14)/12)/4-367*(m1-2-(m1-14)/12*12)/12+3*((y1+(m1-14)/12)/100+1)/4-d1+d2)*1440+(h2-h1)*60+f2-f1"
- if !f! geq 180 (
- echo 当前时间:【!date:~,10! !time:~,5!】距文件修改时间:【%%~ta】已超过设定值[分钟]
- start A...
- ) else (
- echo 没有超过设定值!
- goto uu)
- )
- )
- )
- pause&exit
- :uu
- start B...
- pause&exit
复制代码
作者: Batcher 时间: 2015-1-23 23:03
回复 2# oqis
友情提示,%%~ta 和 !date:~,10! 在不同的系统里面格式可能不同,一定要做好充分的测试。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |