我正在尝试获取今天日期的月份(例如 08):
set /a m=%date:~4,2% echo m
但是,我收到错误“无效的数字。常量是十进制 (17) 十六进制 (0x11) 或八进制 (021)”。为什么?一直到八月都运行良好。
我正在尝试获取今天日期的月份(例如 08):
set /a m=%date:~4,2% echo m
但是,我收到错误“无效的数字。常量是十进制 (17) 十六进制 (0x11) 或八进制 (021)”。为什么?一直到八月都运行良好。
尝试这个:
set "month=%date:~4,2%"
echo %month%
cmd 假定所有带前导零的数字为八进制数。“08”不是有效的八进制数。
Dany Bee 是正确的 - SET /A 将尝试将 08 视为八进制并给出错误消息。您可以通过以 1 为前缀并计算 mod 100 来获得不带前导 0 的值。
set /a "month=1%date:~4,2% %% 100"
请注意,从 中解析值%date%
取决于语言环境。在我的机器上我必须使用set /a "month=1%date:~0,2% %% 100"