批处理显示时间报错:无效数字。数字常数只能是十进制(17),十六进制(0x

如题所述


1、set/anowTime=(1%nowTime:~0,2%-100)*360000+(1%nowTime:~3,2%-100)*6000+(1%nowTime:~6,2%-100)*100+(1%nowTime:~9,2%-100)这是换算成厘秒的,毕竟批处理无法进行浮点数运算。
2、就是因为你设置的08是无效数字,数字常数只能是十进制(17),十六位进制(0x11)或八进制(021)。所以一开始给变量赋值就不能被识别。这里并不是因为开始设置成文本变量导致不能计算的问题。
3、set表明要给后面的变量赋值,可以带/p和/a。当带/p时,意思是从键盘给变量赋值;带/a时表示给在批处理中赋初值。%a%表示去变量a的值。
4、开头的数字被理解为8进制,所以08和09会报错,01-07应该没问题,日期中的数字也这样。解决办法是把08和09替换为8和9,既然你都会用set截取部分字符串,相信你也会字符串替换,祝你成功。
5、所以报错。建议如下:首先是#ftime1#和#ftime2#是什么格式?要改成YYYYMMDD格式,因为这样的能够转换成数字;然后to_char(fsigndate,yyyy-mm-dd)改成to_char(fsigndate,YYYYMMDD)。这样就没有问题了。
6、中的OnError语句)可捕获及处理下列错误。下表将同时显示十进制和十六进制错误代码值。常量名称编号说明adErrInvalidArgument30010x800A0BB9应用程序使用的参数其类型错误、超出可接受的范围或者与其他参数冲突。
温馨提示:答案为网友推荐,仅供参考