[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求助传输文件的批处理脚本提示无效数字

我这边一个传输文件的脚本一直提示“无效数字。数字常数只能是十进制(17),十六进制(0x11)或八进制(021)”,请各位大佬帮帮忙,看一下那里出错了
  1. @echo off
  2. set Pan=D:\1\
  3. set Back=D:\2\
  4. set DQ=238358
  5. set YS=238357
  6. set LogFile=D:\1\
  7. set D=%DATE:~8,2%
  8. set DD=0
  9. set DDD=0
  10. set DDDD=0
  11. :loop
  12. ping -n 1 127.0.0.>nul
  13. set D=%DATE:~8,2%
  14. set DESFILE=1_%DQ%_1047576955.dbf.zip
  15. set YSFILE=1_%YS%_1047576955.dbf.zip
  16. echo %DESFILE%
  17. if %DD% NEQ %D% (
  18.   set /a DD = %D%+0
  19.   set /a DDD= %DDD%+1
  20.   set /a DDDD = %DDD%+0
  21.   set /a DDDD = %DDD%+1
  22.   echo %DDD%
  23.   echo %DDDD%
  24.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:Create softlog-%DDDD%.log Sussce > %LogFile%softlog-0.log
  25.   echo sesuuce
  26. ) else (
  27.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:Create softlog-%DDDD%.log Fail > %LogFile%softlog-1.log
  28.   echo !
  29. )
  30. if exist "%Pan%%DESFILE%" (
  31.   set /a YS=%YS%+1
  32.   set YSFILE=1_%YS%_1047576955.dbf.tar.bz
  33.   echo %YSFILE%
  34.   move "%Pan%%YSFILE%" "%Back%" > nul
  35.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:copy "%Pan%%YSFILE%" "%Back%" Sussce >> %LogFile%softlog-%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%.log
  36.   set /a DQ=%DQ%+1
  37. ) else (
  38.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:copy "%Pan%%YSFILE%" "%Back%" NotFound > %LogFile%softlog-fail.log
  39. )
  40. goto:loop
  41. pause
复制代码

回复 1# houchuanbao


请参考Q-01观察一下哪行代码在报错:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

答案在中文注释里
  1. @echo off
  2. set Pan=D:\1\
  3. set Back=D:\2\
  4. set DQ=238358
  5. set YS=238357
  6. set LogFile=D:\1\
  7. set D=%DATE:~8,2%
  8. set DD=0
  9. set DDD=0
  10. set DDDD=0
  11. :loop
  12. ping -n 1 127.0.0.>nul
  13. ::这里是出错的关键。今天是4月8日,D的结果是08。
  14. set D=%DATE:~8,2%
  15. set DESFILE=1_%DQ%_1047576955.dbf.zip
  16. set YSFILE=1_%YS%_1047576955.dbf.zip
  17. echo %DESFILE%
  18. if %DD% NEQ %D% (
  19.   ::0开头的数字在参与计算时,会将其视为8进制数,08,09是无效的8进制数,因此会报错。
  20.   set /a DD = %D%+0
  21.   set /a DDD= %DDD%+1
  22.   set /a DDDD = %DDD%+0
  23.   set /a DDDD = %DDD%+1
  24.   echo %DDD%
  25.   echo %DDDD%
  26.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:Create softlog-%DDDD%.log Sussce > %LogFile%softlog-0.log
  27.   echo sesuuce
  28. ) else (
  29.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:Create softlog-%DDDD%.log Fail > %LogFile%softlog-1.log
  30.   echo !
  31. )
  32. if exist "%Pan%%DESFILE%" (
  33.   set /a YS=%YS%+1
  34.   set YSFILE=1_%YS%_1047576955.dbf.tar.bz
  35.   echo %YSFILE%
  36.   move "%Pan%%YSFILE%" "%Back%" > nul
  37.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:copy "%Pan%%YSFILE%" "%Back%" Sussce >> %LogFile%softlog-%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%.log
  38.   set /a DQ=%DQ%+1
  39. ) else (
  40.   echo %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% movesoft[]:copy "%Pan%%YSFILE%" "%Back%" NotFound > %LogFile%softlog-fail.log
  41. )
  42. goto:loop
  43. pause
复制代码

TOP

返回列表