set ".1=a"
set ".2=b"
set ".3=c"
set n=3
我的主要是针对字符串的。 在调用函数的那句 call :func "你是谁" "" (测试中文额。。。)
如果你一定要我 .1 .2 .3 那么我必须另写一段代码, 判断n=3 然后将.1.2.3 结合起来然后
调用。这对我的代码路线来说就是一个弯路呐。
所以我决定不写这个部分了,而且楼主自己也有能力自己改上的。
文件操作部分按照你的意思,
现在我直接复制你的代码,直接在上面修改了。
组合的代码也改了,速度是慢些,不过调用一次关系不大。 | @echo off | | setlocal enabledelayedexpansion | | | | set /a strn=0 | | call :func "你是谁" "" | | echo 筛选出的组合个数%strn% | | ::开始文件操作 | | cd /d "C:\Documents and Settings\Administrator\桌面\新建文件夹" | | for /f "delims=" %%a in ('dir /a-d/b *.html') do ( | | set file=%%a | | setlocal enabledelayedexpansion | | set /a n=!random!%%strn+1 | | for %%x in (!n!) do echo; !str_%%x! - %%a | | ( | | for %%x in (!n!) do echo;!str_%%a! | | more "!file!" | | )> "%temp%\~tmp" | | move "%temp%\~tmp" "!file!" | | endlocal | | ) | | pause &exit | | | | | | :func | | set tmpstr=%~2 | | if %1=="" ( | | if not %2=="" ( | | if not "!tmpstr:~1!"=="" ( | | set /a strn+=1 | | echo 筛选的组合 !tmpstr! | | set "str_!strn!=^<title^>!tmpstr!^</title^>" | | ) | | ) | | goto :eof | | ) | | set strnow=%~1 | | call :func "%strnow:~1%" "%~2%strnow:~0,1%" | | set strnow=%~1 | | call :func "%strnow:~1%" "%~2" | | goto :eofCOPY |
恩我交代一下:
set /a strn=0
call :func "元素" ""
调用 func函数, 第二参数为空。
调用之后,函数会把组合的结果 储存到 str_1 ,str_2 , str_3...这样的变量中
最后 strn会等于组合结果的个数。(显然是筛选过的,只有一个字符的组合去掉)
然后就可以自己改了吧。
[ 本帖最后由 523066680 于 2010-7-7 17:43 编辑 ] |