[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
7楼代码简洁,但感觉效率不如6楼。
心绪平和,眼藏静谧。

TOP

这样行不?
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (0 1 9) do set %%i=%%i
  3.     for /f "delims=" %%i in (1.txt) do set "str=%%i"&call:lp
  4.     pause&goto :eof
  5. :lp
  6. set/a n+=1
  7. set var=!str:~-%n%,1!
  8. if defined !var! (set str2=!var!!str2!&set lp=lp) else (
  9.     if not defined lp (set str1=!var!!str1!) else (
  10.     set/a str2*=7&set str=!str:~,-%n%!!var!!str2!!str1!
  11.     >>b.txt echo !str!
  12.     for %%i in (str1 str2 n lp) do set %%i=
  13.     goto :eof
  14.     ))
  15.     goto lp
复制代码
1

评分人数

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "usebackq skip=35 delims=" %%a in ("%~dpnx0") do (
  3. set "var=%%a"
  4. set "e="
  5. set "m=0"
  6. set /a num+=1
  7. call :is "%%a"
  8.     )
  9. for /l %%a in (1 1 %num%) do echo.!_str1%%a!!_num%%a!!_str2%%a!
  10. pause
  11. goto :eof
  12. :is
  13. set "str=%~1"
  14. if "%var:~-1%" lss "0" (
  15. set "e=%var:~-1%!e!"
  16. set "var=%var:~0,-1%"&set /a m+=1
  17. goto is
  18.     )
  19. set "_str2%num%=%e%
  20. set "_strn%num%=!str:~0,-%m%!"
  21. call :su "!_strn%num%!"
  22. goto :eof
  23. :su
  24. set "a="
  25. set "u=%~1"
  26. set "y=0"
  27. :st
  28. for /l %%a in (0 1 9) do if "%u:~-1%"=="%%a" set "a=%u:~-1%!a!"&set /a y+=1
  29. set "u=%u:~0,-1%"
  30. for /l %%a in (0 1 9) do if "%u:~-1%"=="%%a" goto :st
  31. set /a x+=1
  32. set "_num%x%=%a%"
  33. set /a _num%num%*=7
  34. set "_str1%x%=!_strn%x%:~0,-%y%!"
  35. goto :eof
  36. 1##4072.0###52.19### #504## #
  37. 2#38705.8# # # 51.73## #490# #
  38. 372###389.0##51.80##19.77# # 504#####
  39. 4##59.71#3715.45##497######
  40. 5##4072.0###52.19### #72## #
  41. 6#38705.8# # # 51.73## #70# #
  42. 772###389.0##51.80##19.77# # 72#####
  43. 8##59.71#3715.45##71######
复制代码


[ 本帖最后由 ieutk 于 2008-8-7 19:05 编辑 ]
不大可能的事也许今天实现,根本不可能的事也许明天会实现

TOP

这题就是不让用变量替换才故意给出有重复数字的文本。
我之后生成的文本中有重复数字字串的概率是1%
变量截取可以,但好麻烦。
心绪平和,眼藏静谧。

TOP

那到是,还要修代码
不大可能的事也许今天实现,根本不可能的事也许明天会实现

TOP

楼上代码错了,不可以用替换的
不然所有71的数字都被你替换了

TOP

是这样理解的吗?

list.txt
  1. 1##4072.0###52.19### #504## #
  2. 2#38705.8# # # 51.73## #490# #
  3. 372###389.0##51.80##19.77# # 504#####
  4. 4##59.71#3715.45##497######
  5. 5##4072.0###52.19### #72## #
  6. 6#38705.8# # # 51.73## #70# #
  7. 772###389.0##51.80##19.77# # 72#####
  8. 8##59.71#3715.45##71######
复制代码
代码如下
--------------------------------------------------------------------------------------------------------------
  1. @echo off
  2. for /f "delims=" %%a in (list.txt) do call :is "%%a"
  3. pause
  4. goto :eof
  5. :is
  6. set /a num+=1
  7. for /f "tokens=%num% delims=# " %%a in ("%~1") do (
  8. call set "var=%%var%% %%a"
  9. goto is
  10. )
  11. for %%a in (%var%) do set "num=%%a"
  12. set /a _num=7*%num%
  13. set "str=%~1"
  14. call set "str=%%str:%num%=%_num%%%"
  15. echo %str%
  16. set "num=0"
  17. goto :eof
复制代码
不大可能的事也许今天实现,根本不可能的事也许明天会实现

TOP

返回列表