中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 02:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]set /a中的算式如何理解? 查看 883 回复 8
楼 主 [已结]set /a中的算式如何理解? 发表于 2008-12-20 14:13 ·  中国 重庆 沙坪坝区 电信
新手上路
积分 13
发帖 10
注册 2008-11-13 00:09
17年会员
UID 130805
性别 男
来自 重庆市
状态 离线
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 ]
2 发表于 2008-12-20 16:38 ·  中国 贵州 安顺 电信
初级用户
积分 94
发帖 49
注册 2008-12-14 20:47
17年会员
UID 133884
性别 男
状态 离线
据说这时的小时数还是2位,系统自动补了个空格。
1%NowTime:~3,2%-100是说截取的2位前面补个1变成3位再-100,作用是去0。
3 发表于 2008-12-20 17:14 ·  中国 重庆 沙坪坝区 电信
新手上路
积分 13
发帖 10
注册 2008-11-13 00:09
17年会员
UID 130805
性别 男
来自 重庆市
状态 离线


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

4 Re 3楼 发表于 2008-12-20 17:38 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
101减去100会变成01么?
你如何测试的?
5 发表于 2008-12-20 18:41 ·  中国 重庆 沙坪坝区 电信
新手上路
积分 13
发帖 10
注册 2008-11-13 00:09
17年会员
UID 130805
性别 男
来自 重庆市
状态 离线
我测试了一下,对set /a minute1=1%NowTime:~3,2%-100的作用还是不理解。


[ Last edited by mysuntjy on 2008-12-20 at 18:53 ]
6 Re 5楼 发表于 2008-12-20 19:48 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
把@echo off删除,看看执行过程就理解了。
7 发表于 2008-12-20 20:07 ·  中国 贵州 安顺 电信
初级用户
积分 94
发帖 49
注册 2008-12-14 20:47
17年会员
UID 133884
性别 男
状态 离线
你可以自己设计个字符串来测试,比如:
set NowTime=18:01:01.56

这样。
8 发表于 2008-12-20 20:41 ·  中国 重庆 沙坪坝区 电信
新手上路
积分 13
发帖 10
注册 2008-11-13 00:09
17年会员
UID 130805
性别 男
来自 重庆市
状态 离线
有点懂老,是去掉截取的分钟数的两个字符的前一个零。

谢谢,linee and HAT。确实很久都没搞得懂。
9 发表于 2009-01-03 14:47 ·  中国 江苏 无锡 电信
初级用户
★★
积分 137
发帖 85
注册 2007-11-26 21:05
18年会员
UID 103862
性别 男
状态 离线
好像很复杂
论坛跳转: