[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]批处理怎么生成所有3位的小写字母组合?谢谢

本帖最后由 lantern 于 2015-1-18 15:46 编辑

批处理怎么生成所有3位的小写字母组合?谢谢
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off &color 0a &setlocal enabledelayedexpansion
  2. set "code=abcdefghijklmnopqrstuvwxyz"
  3. for /l %%a in (1,1,3) do (
  4.   set /a "i=!random!%%26"
  5.   call :random
  6. )
  7. echo.!str!
  8. pause.
  9. call exit
  10. :random
  11. set "str=!str!!code:~%i%,1!"
  12. goto :eof
复制代码

TOP

一种思路:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "code=abcdefghijklmnopqrstuvwxyz"
  3. set /a max=25*25*25
  4. for /l %%a in (0 1 %max%) do (
  5.    set /a "n1=%%a / 625,n2=%%a / 25 %% 25,n3=%%a %% 25"
  6.    for /f "tokens=1-3" %%b in ("!n1! !n2! !n3!") do echo !code:~%%b,1!!code:~%%c,1!!code:~%%d,1!
  7. )
  8. pause
复制代码
1

评分人数

TOP

回复 2# 再世情緣
输出结果只有一组?

TOP

本帖最后由 lantern 于 2014-9-17 12:02 编辑
一种思路:
CrLf 发表于 2014-9-17 05:20

有效,谢谢
25是不是应该是26啊?改成26以后,最后一组输出了aa,不知道哪里的问题
  1. @echo off&setlocal enabledelayedexpansion
  2. set "code=abcdefghijklmnopqrstuvwxyz"
  3. set /a max=26*26*26
  4. for /l %%a in (0 1 %max%) do (
  5.    set /a "n1=%%a / 676,n2=%%a / 26 %% 26,n3=%%a %% 26"
  6.    for /f "tokens=1-3" %%b in ("!n1! !n2! !n3!") do echo !code:~%%b,1!!code:~%%c,1!!code:~%%d,1! >>a.txt
  7. )
  8. pause
复制代码

TOP

偏移是从0开始算的,不是1,所以是25
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 6# xxpinqz
25的话输出结果是15625条,但是3位小写字母组合是17576条啊

TOP

回复 7# lantern
  1. set /a max=26*26*26-1
复制代码
1

评分人数

    • CrLf: 谢谢指正技术 + 1
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

本帖最后由 xxpinqz 于 2014-9-17 15:14 编辑

最土的办法:
  1. @echo off
  2. set "#=a b c d e f g h i j k l m n o p q r s t u v w x y z"
  3. (for %%a in (%#%)do for %%b in (%#%)do for %%c in (%#%)do echo,%%a%%b%%c)>1.txt
复制代码
1

评分人数

初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 9# xxpinqz
感谢

TOP

回复 4# lantern


    额。。。理解错了,看成是随机3个小写字母的组合了。。。

TOP

返回列表