您好,我正在运行一个批处理脚本来获取当前日期并对其执行数值运算。
我使用以下命令获取日期,然后对其进行操作(加、减等)。
但如果日期返回的值小于 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).
Run Code Online (Sandbox Code Playgroud)
请帮忙
你可以用一个小技巧删除零:
\n\nset /a dd1=(1%dd: =0%-100)-1\nRun Code Online (Sandbox Code Playgroud)\n\n这会将字符串“1”添加到“08”(它仍然是一个字符串),结果是“108”。然后减去“100”(/a将它们视为数字),结果是“8”。如果在您的区域设置中,日期没有前导零,而是有一个空格,%%d: =0%请将其替换为零
如果您需要带前导零的结果,只需再次添加即可:
\n\nset dd1=0%dd1%\nset dd1=%dd1:~-2%\nRun Code Online (Sandbox Code Playgroud)\n\n这会将字符串“0”添加到字符串“7”(之前的结果)前面,得到“07”,并从中取出最后两位数字“07”(如果之前的结果是“24”, -> 添加“0”=“024”->最后两个=“24”)
\n\n编辑后也可以在区域设置中使用,其中日期有空格而不是前导零。(感谢 L\xc6\xb0u V\xc4\xa9nh Ph\xc3\xbac 发现它)
\n