CODE: [Copy to clipboard]
@echo off
set text=a,b,c,e,f,g,h
for /f "tokens=1-8* delims=. " %%a in (ip.txt) do (
call :x1 %%a %%b %%c %%d %%e %%f %%g %%h
)
call :txout
echo -------------------------------------------------------
for /f "tokens=1-8* delims=. " %%a in (ip.txt) do (
set/a ao=%%a,bo=%%b,co=%%c,do=%%d,eo=%%e,fo=%%f,go=%%g,ho=%%h
call :x2
)
goto end
:x1
if not defined ao (
set/a ao=%1,bo=%2,co=%3,do=%4,eo=%5,fo=%6,go=%7,ho=%8&&goto :eof
) else (
if not defined an (
set/a an=%1,bn=%2,cn=%3,dn=%4,en=%5,fn=%6,gn=%7,hn=%8)
)
set/a 1/(ao-en) 2>nul&&call :txout&&call :clear "%text%" "%%%%xo"&&goto x1
if %bo% geq %fn% (set/a B=bo-fn) else (set/a B=fn-bo)
if %b% leq 1 (
set/a eo=en,fo=fn,go=gn,ho=hn
call :clear "%text%" "%%%%xn"
) else (
call :txout
call :clear "%text%" "%%%%xo"
goto x1
)
goto :eof
:x2
set/a aaa=((bo-fo)*2+1)%%2*(bo-fo),1/(aaa/6) 2>nul||goto txout
set/a loop=aaa/5,zzz=aaa%%5,fo=bo
for /l %%x in (1,1,%loop%) do (
set/a fo+=5
call :txout
set/a bo+=5
)
set/a bo=fo,fo+=zzz
call :txout
goto :eof
:clear
for %%x in (%~1) do set %~2=%~3
goto :eof
:txout
echo %ao%.%bo%.%co%.%do% %eo%.%fo%.%go%.%ho%
goto :eof
:end
pause
goto :eof
现写的,你发的例子没问题