我想知道今天的日期(例如08):
set /a m=%date:~4,2% echo m
但是,我收到错误“无效的数字。常量是十进制(17)十六进制(0x11)或八进制(021)”。为什么?它工作正常,直到8月。
答案 0 :(得分:3)
试试这个:
set "month=%date:~4,2%"
echo %month%
cmd假定所有带前导零的数字为八进制数。 “08”不是有效的八进制数。
答案 1 :(得分:2)
Dany Bee是正确的 - SET / A将尝试将08视为八进制并给出该错误消息。你可以通过前缀1和计算模块100来获得没有前导0的值。
set /a "month=1%date:~4,2% %% 100"
请注意,解析%date%
中的值取决于区域设置。在我的机器上,我必须使用set /a "month=1%date:~0,2% %% 100"