标题: [数值计算] [已解决]批处理怎么生成所有3位的小写字母组合?谢谢 [打印本页]
作者: lantern 时间: 2014-9-16 23:27 标题: [已解决]批处理怎么生成所有3位的小写字母组合?谢谢
本帖最后由 lantern 于 2015-1-18 15:46 编辑
批处理怎么生成所有3位的小写字母组合?谢谢
作者: 再世情緣 时间: 2014-9-17 00:09
- @echo off &color 0a &setlocal enabledelayedexpansion
- set "code=abcdefghijklmnopqrstuvwxyz"
- for /l %%a in (1,1,3) do (
- set /a "i=!random!%%26"
- call :random
- )
- echo.!str!
- pause.
- call exit
-
- :random
- set "str=!str!!code:~%i%,1!"
- goto :eof
复制代码
作者: CrLf 时间: 2014-9-17 05:20
一种思路:- @echo off&setlocal enabledelayedexpansion
- set "code=abcdefghijklmnopqrstuvwxyz"
- set /a max=25*25*25
- for /l %%a in (0 1 %max%) do (
- set /a "n1=%%a / 625,n2=%%a / 25 %% 25,n3=%%a %% 25"
- for /f "tokens=1-3" %%b in ("!n1! !n2! !n3!") do echo !code:~%%b,1!!code:~%%c,1!!code:~%%d,1!
- )
- pause
复制代码
作者: lantern 时间: 2014-9-17 11:51
回复 2# 再世情緣
输出结果只有一组?
作者: lantern 时间: 2014-9-17 11:51
本帖最后由 lantern 于 2014-9-17 12:02 编辑
一种思路:
CrLf 发表于 2014-9-17 05:20
有效,谢谢
25是不是应该是26啊?改成26以后,最后一组输出了aa,不知道哪里的问题- @echo off&setlocal enabledelayedexpansion
- set "code=abcdefghijklmnopqrstuvwxyz"
- set /a max=26*26*26
- for /l %%a in (0 1 %max%) do (
- set /a "n1=%%a / 676,n2=%%a / 26 %% 26,n3=%%a %% 26"
- for /f "tokens=1-3" %%b in ("!n1! !n2! !n3!") do echo !code:~%%b,1!!code:~%%c,1!!code:~%%d,1! >>a.txt
- )
- pause
复制代码
作者: xxpinqz 时间: 2014-9-17 13:41
偏移是从0开始算的,不是1,所以是25
作者: lantern 时间: 2014-9-17 14:18
回复 6# xxpinqz
25的话输出结果是15625条,但是3位小写字母组合是17576条啊
作者: xxpinqz 时间: 2014-9-17 15:10
回复 7# lantern 复制代码
作者: xxpinqz 时间: 2014-9-17 15:13
本帖最后由 xxpinqz 于 2014-9-17 15:14 编辑
最土的办法:- @echo off
- 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"
- (for %%a in (%#%)do for %%b in (%#%)do for %%c in (%#%)do echo,%%a%%b%%c)>1.txt
复制代码
作者: lantern 时间: 2014-9-17 15:21
回复 9# xxpinqz
感谢
作者: 再世情緣 时间: 2014-9-18 19:12
回复 4# lantern
额。。。理解错了,看成是随机3个小写字母的组合了。。。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |