[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
以前写的枚举输入字符组合的方法(注意非空字符不要超过9个):
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p num=请输入字符:
  3. set "num=%num: =%"&set "num=!num: =!"
  4. set "s=abcdefghijklnmopqrstuvwxyz"
  5. :lp
  6. set /a n+=1
  7. set "ss=%ss%str%n%"&set "k=%k%)"&set "str1=%str1% %n%"
  8. set "nums=%nums% %num:~,1%"&set "num=%num:~1%
  9. if defined num goto lp
  10. (echo ^@echo off^&setlocal enabledelayedexpansion
  11. echo cd.^>list.txt
  12. echo for %%%%a in ^(%nums%^) do set /a m+=1^&set "_^!m^!=%%%%a"
  13. echo set "str1=%str1%")>temp.bat
  14. for /l %%a in (1,1,%n%) do (
  15.      set "a=%%%%!s:~,1!"&set "b=!ss:~,4!"&set "c=!ss:~4,4!"
  16.      set "str=!str!^!_!a!^!"&if "!c!" equ "" set "c=flag"
  17.      echo for !a! in ^(^^^!!b!^^^!^) do ^(set "!c!=^!!b!:!a!=^!">>temp.bat
  18.      set "s=!s:~1!"&set "ss=!ss:~4!"
  19. )
  20. echo echo !str!^>^>list.txt>>temp.bat
  21. echo %k%>>temp.bat
  22. echo start list.txt^&del /q %%0>>temp.bat
  23. endlocal&temp.bat
复制代码

[ 本帖最后由 batman 于 2009-11-13 18:03 编辑 ]
***共同提高***

TOP

for中是不能有goto循环的,只能跳转到外部循环
***共同提高***

TOP

变量嵌套+递归法解本题:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str1=1 2 3 4 5 6 7 8"
  3. call :lp 1
  4. start list.txt&goto :eof
  5. :lp
  6. for %%a in (!str%1!) do (
  7.     set "var%1=%%a"
  8.     if not defined _%1 set "var=!var!^!var%1^!"&set "_%1=a"
  9.     set /a n=%1+1&set "str!n!=!str%1:%%a=!"   
  10.     if "!n!" leq "8" (
  11.        call :lp !n!
  12.        ) else (
  13.        for %%a in (!var!) do echo %%a>>list.txt
  14.     )
  15. )
复制代码
***共同提高***

TOP

返回列表