博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【批处理】时间处理
阅读量:5888 次
发布时间:2019-06-19

本文共 1219 字,大约阅读时间需要 4 分钟。

SET /a a=%time:~0,2%*60+%time:~3,2%

if %a% geq 480 if %a% leq 1080 (goto 下一步)
GOTO :EOF
:下1步
..........

 

上面代码(红色标示)是取 %time% 环境变量中的小时(采用截取字符串的方法取得的)

假如: %time% 所示时间为:11:15:33.01 (即:11点15分),则 %time:~0,2% 就是取 %time% 变量中从偏移量0开始处取两个字符。取到的就是小时。

 

%time:~0,2%*60,把取到的小时再乘以60(分钟),因为一小时是60分钟,所以通过字符串截取功能取到的小时数要换算成总的分钟数,所以要再乘以60。因为将小时换算成分钟是为了方便比对某个时间的范围。

 

+%time:~3,2%,当取到小时并且让小时乘以60而换算成分钟还不行,因为还要得到 %time% 变量中的分钟数,所以 %time:~3,2% (假如%time%时间为: 11:15:33.01)那么就是从偏移量3开始(偏移量从0开始计算)取两个字符,这两个字符就是上面(蓝色标示)“15”。

因为小时数已换算成分钟了,再加上%time%里的分钟数,这样求出的当前时间的总分钟数才更准确。

换算得到总的分钟数就可以更方便简单的使用 IF 来计算(并且还可以进行加减计算等特殊时间或是以这种原理的对日期的范围操作……)。

 

leq 1080 (上面代码绿色标示),这里的 LEQ 是小于或等于的含义,它的帮助信息使用 IF /? 命令可以看到:

        EQU - 等于

        NEQ - 不等于
        LSS - 小于
        LEQ - 小于或等于
        GTR - 大于
        GEQ - 大于或等于

上面代码含义是指:小于或等于 1080 分钟(18点:就是从0点到晚上6点共有18个小时*每小时60分钟,就是1080分钟)

然后以分钟做为对比的基础单位:

IF  当前时间大于或等于480分钟(即480/60=8小时,就是上午8点) 并且  当前时间小于或等于1080分钟(1080/60=18小时,就是晚18点),只要时间的范围在这之间,这就是楼主要求的:当前时间如果在早8点——晚18点之间,就执行某个命令……

 

(截取字符串知识点:   SET /?  的帮助信息中有)

(%time%的知识点: SET /?  的帮助信息的最后面有关于可以“调用”的动态环境变量)
(判断大小与判断的知识点: IF /? 的帮助信息中)
(Goto的知识点:   GOTO /? 的帮助信息中)

 

对于日期也可以使用类似的全转成数值的方法来判定某个文件的时间属性:属于在某个日期到某个日期的范围之内等特殊应用。

转载于:https://www.cnblogs.com/ronli/archive/2012/03/06/2382416.html

你可能感兴趣的文章
android app启动过程(转)
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
高并发环境下,Redisson实现redis分布式锁
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
ABP理论学习之仓储
查看>>
我的友情链接
查看>>
CentOS图形界面和命令行切换
查看>>
HTML5通信机制与html5地理信息定位(gps)
查看>>
加快ALTER TABLE 操作速度
查看>>
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>