果真成了体力活。我的这种方法不兼容等号=,所以用了wfr.exe把里面的=全部先替换为#,最后再改回来。
@echo off&setlocal enabledelayedexpansion
copy test.txt tmp.txt >nul
wfr tmp.txt /r:"\=" /t:"#"
set ".3=12"&set ".10=9"&set ".11=9"
for /f "delims=" %%a in (tmp.txt) do (
set/a n=0
for %%i in (%%a) do (
set/a n+=1,m=0&set "s="
for %%s in (3 10 11) do (
if !n! equ %%s (
set "s=s"&set "var=%%i"
call :lp "%%s" "%%i"
))
if not defined s if !n! neq 12 set "var=%%i "&set/p=!var:~,7! <nul
)
echo.
)>>a.txt
del tmp.txt
wfr a.txt /r:"#" /t:"\="
pause
:lp
set "str=%var:~,1%"&set "var=%var:~1%"
if "%str%" gtr "Z" (set/a m+=2) else set/a m+=1
if "%var%" neq "" goto lp
set/a x=.%~1-m
<nul set/p=%~2
for /l %%a in (1 1 %x%) do set/p= <nul
保存结果为a.txt
wfr.exe 下载:http://www.vkill.net/tools/wfr_2.3.1.120.rar
Last edited by pusofalse on 2008-9-27 at 13:20 ]