如何从日期中提取月份

时间:2013-08-05 21:25:00

标签: batch-file

我想知道今天的日期(例如08):

set /a m=%date:~4,2% echo m

但是,我收到错误“无效的数字。常量是十进制(17)十六进制(0x11)或八进制(021)”。为什么?它工作正常,直到8月。

2 个答案:

答案 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"