设置变量时出现无效的数字错误

use*_*923 0 batch-file

我正在使用此线程中的代码来获取明天的日期.它如下:

@echo off

set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%

:loop
  set /a d+=1

  if %d% gtr 31 (
    set d=1
    set /a m+=1

    if %m% gtr 12 (
      set m=1
      set /a y+=1
    )
  )
xcopy /d:%m%-%d%-%y% /l . .. >nul 2>&1 || goto loop

echo %d%/%m%/%y%
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

无效号码.数字常量为十进制(17),十六进制(0x11)或八进制(021).

虽然在帖子的文字中说:

在为变量赋值时,我们使用SET/A(而不仅仅是SET)来克服尝试在'08'和'09'之后执行八进制算术的问题.这是因为在算术赋值期间会删除前导零.

End*_*oro 7

假设,您在日和月中有前导零:

set /a d=1%date:~0,2%-100
set /a m=1%date:~3,2%-100
set /a y=%date:~6,4%