批处理 截取时间 报错:无效数字。数字常数只能是十进制(17),十六进制(0x11)或八进制(021) RT。代码如下:@echo off:forset st=%time:~9,2%set ed=%time:~9,2%set /a cc=%ed%-%st%echo %st% %ed% %cc%goto for set /a cc=%ed:0=%-%st:0=%
2、就是因为你设置的08是无效数字,数字常数只能是十进制(17),十六位进制(0x11)或八进制(021)。所以一开始给变量赋值就不能被识别。这里并不是因为开始设置成文本变量导致不能计算的问题。3、set表明要给后面的变量赋值,可以带/p和/a。当带/p时,意思是从键盘给变量赋值;带/a时表示给在批处...
set /a yyyy=%date:~0,4%,mm=1%date:~5,2%%%100,dd=1%date:~8,2%%%100,od=dd-1
这是换算成厘秒的,毕竟批处理无法进行浮点数运算。例如:“20:01:02.03”,有3个“前导0” ,但计算时就变成了set /a nowTime=(120-100)*360000 + (101-100)*6000 + (102-100)*100 + (103-100),也就是说任何运算步骤都不会出现“前导0”,也就不存在8位数的问题了。