Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 设置变量时出现无效数字错误_Batch File - Fatal编程技术网

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

Batch file 设置变量时出现无效数字错误,batch-file,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%

我正在使用来自的代码获取明天的日期。详情如下:

@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(而不是 刚刚设置)以克服尝试执行八进制的问题 08年和09年的算术。这是因为前导零 在算术赋值过程中被删除


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

set /a d=1%date:~0,2%-100 set /a m=1%date:~3,2%-100 set /a y=%date:~6,4% 设置/AD=1%日期:~0,2%-100 设置/a m=1%日期:~3,2%-100 设置/a y=%date:~6,4%
日期格式取决于本地/区域设置。你的区域设置是什么?日期格式是dd-MM-yyyy,正如本文所假设的。如果我将月份从8月(08)改为11月(10),它运行得很好。在白天,你有前导零吗?如果白天有前导零,它运行得很好。狗屎工作,仍然不确定为什么原始脚本在当月失败,而不是day@user1151923:可能是因为月份是
08
(无效的八进制值),而日期是
30
(有效的十进制值)。