0

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

@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%

但是我收到以下错误:

无效号码。数字常量可以是十进制 (17)、十六进制 (0x11) 或八进制 (021)。

虽然在帖子的文字中它说:

在为变量赋值时,我们使用 SET /A(而不仅仅是 SET)来克服稍后尝试对 '08' 和 '09' 执行八进制运算的问题。这是因为在算术赋值期间前导零被修剪掉了。

4

1 回答 1

7

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

设置 /ad=1%date:~0,2%-100
设置 /am=1%date:~3,2%-100
设置 /ay=%date:~6,4%
于 2013-08-30T09:20:14.760 回答