[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
楼上代码错了,不可以用替换的
不然所有71的数字都被你替换了

TOP

我把我的代码也贴到这,如果通用性有问题请告知
方法一:(用时0.25~0.30秒)
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (LastNumberChange.txt) do set/a n+=1&set LastLine=$%%i$
  3. for /f "delims=" %%i in (LastNumberChange.txt) do (
  4. set/a m+=1
  5. if %n% neq !m! call set "all=!all!%%i&echo."
  6. )
  7. :start
  8. set FirstNumber=%LastLine:~,1%
  9. set "all1=!all1!%FirstNumber%"
  10. set LastLine=%LastLine:~1%
  11. echo %LastLine%|findstr "[0-9]" >nul&&goto :start
  12. :all1
  13. set /a t+=1
  14. call set LastOne=%%all1:~-!t!%%
  15. set/a x=LastOne*1
  16. if "%LastOne%"=="%x%" goto :all1
  17. set/a LastOne=%LastOne:~1%*7
  18. set /a t-=1
  19. set xlm=!all1:~,-%t%!
  20. Set "Sum=%all%%xlm%%LastOne%%LastLine%"
  21. echo %Sum:$=%
  22. pause
复制代码
方法二:(用时0.02~0.05秒)
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (LastNumberChange.txt) do set/a n+=1&set LastLine=$%%i$
  3. for /f "delims=" %%i in (LastNumberChange.txt) do (
  4. set/a m+=1
  5. if %n% neq !m! call set "all=!all!%%i&echo."
  6. )
  7. :LastOne
  8. set/a x+=1
  9. call set LastOne=%%LastLine:~-!x!,1%%
  10. set /a Mult=%LastOne%*1
  11. if not "%Mult%"=="%LastOne%" goto :LastOne
  12. set/a x-=1
  13. call set Front=%%LastLine:~,-%x%%%
  14. call set Last=%%LastLine:~-%x%%%
  15. :Middle
  16. set/a x1+=1
  17. call set LastOne1=%%Front:~-!x1!%%
  18. set /a Mult1=%LastOne1%*1
  19. if "%Mult1%"=="%LastOne1%" goto :Middle
  20. set/a Middle=%LastOne1:~1%*7
  21. set/a x1-=1
  22. call set Front=%%Front:~,-%x1%%%
  23. set "Sum=%all%%Front%%Middle%%Last%"
  24. echo %Sum:$=%
  25. pause
复制代码

TOP

楼上代码还是有问题啊
如果最后一行的数值是下面的三种形式就不行了
  1. 4##59.71#3715.45##71
复制代码
  1. 71##
复制代码
  1. 71
复制代码

[ 本帖最后由 huahua0919 于 2008-8-8 14:25 编辑 ]

TOP

我看错题意了,但是效果一样。解决你的问题过程一样

TOP

返回列表