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

原帖由 pusofalse 于 2008-8-7 21:20 发表
7楼代码简洁,但感觉效率不如6楼。

何以见得呢?
你把上面的内容COPY 100次后测试看看

TOP

原帖由 pusofalse 于 2008-8-8 05:55 发表
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
     set "str="%%a""&set n=0
     for /l %%i in (0 1 9) do (
         set "str=!str:#%%i=#" "%%i!"
         set "str ...

还是替换效率高
如最后一列数字前有两个空格就处理不了  看代码没处理两个空格
譬如:
#1#  #  4072.0###52.19###  #  504## #

TOP

返回列表