Board logo

标题: [已结]set /a中的算式如何理解? [打印本页]

作者: mysuntjy     时间: 2008-12-20 14:13    标题: [已结]set /a中的算式如何理解?
set /a minute1=1%NowTime:~3,2%-100中
NowTime 被赋值为当前时间.
%NowTime:~3,2%读取起始时间的分钟数,但早上时间显示如:3:01:05.95,小时时间只有一位数,十点钟后小时间才是两位数,都从第四位截取会不会有错?
1%NowTime:~3,2%-100这个算式怎么理解?


Last edited by HAT on 2008-12-20 at 22:19 ]

作者: linee     时间: 2008-12-20 16:38
据说这时的小时数还是2位,系统自动补了个空格。
1%NowTime:~3,2%-100是说截取的2位前面补个1变成3位再-100,作用是去0。

作者: mysuntjy     时间: 2008-12-20 17:14


谢谢指点!
但1%NowTime:~3,2%-100如何去0还不是很清楚。
比如:现在时间是3:01:05.95。
在截取分钟时间为01,前面加个1,分钟数变为101,再减去100,又变为01,好象没起什么作用样?
请再指教一下,谢谢!


作者: HAT     时间: 2008-12-20 17:38    标题: Re 3楼
101减去100会变成01么?
你如何测试的?

作者: mysuntjy     时间: 2008-12-20 18:41
我测试了一下,对set /a minute1=1%NowTime:~3,2%-100的作用还是不理解。


Last edited by mysuntjy on 2008-12-20 at 18:53 ]

作者: HAT     时间: 2008-12-20 19:48    标题: Re 5楼
把@echo off删除,看看执行过程就理解了。

作者: linee     时间: 2008-12-20 20:07
你可以自己设计个字符串来测试,比如:
set NowTime=18:01:01.56

这样。

作者: mysuntjy     时间: 2008-12-20 20:41
有点懂老,是去掉截取的分钟数的两个字符的前一个零。

谢谢,linee and HAT。确实很久都没搞得懂。

作者: yyyyyyyyy     时间: 2009-1-3 14:47
好像很复杂