效率高点不?
想不去CAII的 那样更好
另 变量字符长度有限制 权当交流
- @echo off
- set /p str=请输入字符:
- setlocal enabledelayedexpansion
- set /a max=8190,min=0
- for /l %%a in (1,1,14) do (
- set /a "n=(max+min)/2"
- for /f "delims=" %%b in ("!n!") do if "!str:~%%b!" equ "" (set /a max=n) else set /a min=n
- )
- set/a "n-=1"
- for /l %%i in (0 1 %n%) do (
- if %%i equ 0 endlocal
- set/a n=%%i+1
- call:lp %%i
- )
- setlocal enabledelayedexpansion
- for /l %%i in (0 1 %n%) do set _%%i=!str:~%%i,1!&set "v0=!v0! %%i"
- %v%for %%%n% in (!v%n%!) do echo;%vr%!_%%%n%!&set/a t+=1
- echo %t%
- pause&exit
- :lp
- set "v=%v%for %%%1 in (!v%1!) do set v%n%=!v%1:%%%1=!&"
- set "vr=%vr%!_%%%1!"
复制代码
[ 本帖最后由 terse 于 2010-2-27 15:51 编辑 ] |