您好我正在运行批处理脚本以获取当前日期并对其执行数值运算。
我使用以下命令获取日期,然后对其执行操作(添加,减去等)。
但如果日期返回的值小于10(例如09,08),则操作会出错。
set dd=%date:~7,2%
set /a dd1=08-1
Invalid number. Numeric constants are either decimal (17),hexadecimal (0x11), or octal (021).
请帮忙
答案 0 :(得分:4)
你可以通过一个小技巧删除零:
set /a dd1=(1%dd: =0%-100)-1
这将字符串“1”添加到“08”(它仍然是一个字符串),结果为“108”。然后减去“100”(/a
将它们视为数字),结果为“8”。如果在您的语言环境中日期没有前导零而是空格,%%d: =0%
将其替换为零
如果您需要前导零的结果,只需再次添加:
set dd1=0%dd1%
set dd1=%dd1:~-2%
这在字符串“7”(之前的结果)前面添加字符串“0”,得到“07”并从它的“07”取最后两位数字(如果是,之前的结果是“ 24“, - >添加”0“=”024“ - >最后两个=”24“)
已修改也适用于区域设置,其中日期有空格而不是前导零。 (感谢LưuVĩnhPhúc发现它)