找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29973|回复: 10

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

[复制链接]
发表于 2014-9-16 23:27:23 | 显示全部楼层 |阅读模式
本帖最后由 lantern 于 2015-1-18 15:46 编辑

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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-9-17 00:09:28 | 显示全部楼层
  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
复制代码
发表于 2014-9-17 05:20:14 | 显示全部楼层
一种思路:
  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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-9-17 11:51:08 | 显示全部楼层
回复 2# 再世情緣
输出结果只有一组?
 楼主| 发表于 2014-9-17 11:51:26 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2014-9-17 13:41:13 | 显示全部楼层
偏移是从0开始算的,不是1,所以是25
 楼主| 发表于 2014-9-17 14:18:27 | 显示全部楼层
回复 6# xxpinqz
25的话输出结果是15625条,但是3位小写字母组合是17576条啊
发表于 2014-9-17 15:10:25 | 显示全部楼层
回复 7# lantern
  1. set /a max=26*26*26-1
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 谢谢指正

查看全部评分

发表于 2014-9-17 15:13:38 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-9-17 15:21:16 | 显示全部楼层
回复 9# xxpinqz
感谢
发表于 2014-9-18 19:12:10 | 显示全部楼层
回复 4# lantern


    额。。。理解错了,看成是随机3个小写字母的组合了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:20 , Processed in 0.021487 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表