[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
一直觉得穷举法不是批处理的强项,尤其是在不知道有多少位数字或字母的情况下,更是难
以写出通用的代码,本人以前写过一个适用于9位内数字或字母排列的代码,实际上到了8位
就已经达到了效率的极限了。。。
***共同提高***

TOP

来个另类的

要生成个临时文件b.bat:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p num=请输入字符:
  3. set "s=abcdefghijklnmopqrstuvwxyz"&set "nums=%num%"
  4. :lp
  5. set /a n+=1
  6. set "str1=%str1% %n%"
  7. set "ss=%ss%str%n%"&set "k=%k%)"
  8. set "_%n%=%num:~,1%"&set "num=%num:~1%"
  9. if defined num goto lp
  10. echo ^@echo off^&setlocal enabledelayedexpansion>b.bat
  11. for /f "skip=1 delims=" %%a in (%~fs0) do (
  12.     set /a x+=1
  13.     if !x! equ 9 goto loop
  14.     if !x! equ 1 (
  15.        echo set "num=%nums%">>b.bat
  16.        ) else (
  17.        if !x! neq 2 if !x! neq 6 echo %%a>>b.bat
  18.     )
  19. )
  20. :loop
  21. set "a=%%%%%s:~,1%"&set "b=%ss:~,4%"&set "c=%ss:~4,4%"
  22. set "str=!str!^!_%a%^!"
  23. if "%c%" equ "" set "c=flag"  
  24. echo for %a% in (^^^!%b%^^^!) do (set "%c%=^!%b%:%a%=^!">>b.bat
  25. set "s=%s:~1%"&set "ss=%ss:~4%"
  26. if defined ss goto loop
  27. echo echo !str!>>b.bat
  28. echo %k%>>b.bat
  29. echo pause^>nul>>b.bat
  30. endlocal&b
复制代码

[ 本帖最后由 batman 于 2008-9-6 22:06 编辑 ]
2

评分人数

***共同提高***

TOP

返回列表