第一个有字符限制 第二个没字符限制 效率给限制了 | @echo off&setlocal enabledelayedexpansion | | set/a n=29,q=3,z=1 | | for /l %%i in (%z% 1 !n!) do ( | | set/a m+=1,t=m%%q | | if !t! neq 0 set str=!str! %%i | | ) | | set/a z-=1 | | for /l %%i in (!z! -1 1) do set str=%%i !str! | | call :lp "!str!" | | echo 最后剩下的是原来的 !str! 号 | | pause&exit | | :lp | | set p=&set "str=" | | for %%i in (%~1) do ( | | set/a m+=1,t=m%%q | | if !t! neq 0 set str=!str! %%i&set/a p+=1 | | ) | | if !p! gtr 1 call:lp "!str!"COPY |
修改 : 当从最后一位 开始循环出错
| @echo off&setlocal enabledelayedexpansion | | set/a n=29,s=29,q=3 | | if %n% equ %s% set p=1 | | :lp | | for /l %%i in (!s! 1 !n!) do ( | | if not defined %%i ( | | set/a m+=1,t=m%%q | | if !t! equ 0 (set %%i=%%i)else set/a str=%%i,p+=1,n=%%i,s=1 | | ) | | ) | | if !p! gtr 1 set p=&goto lp | | echo 最后剩下的是原来的 !str! 号 | | pauseCOPY |
[ 本帖最后由 terse 于 2008-8-5 20:59 编辑 ] |