标题: [文本处理] 请教批处理如何把数字+字母自定义生成多少位数? [打印本页]
作者: z1366870839 时间: 2018-9-4 15:33 标题: 请教批处理如何把数字+字母自定义生成多少位数?
如何把数字+字母自定义生成多少位数 并添加制定后缀
比如生成gwa564@126.com
首列要字母
作者: z1366870839 时间: 2018-9-4 16:00
有人知道吗
作者: Batcher 时间: 2018-9-4 16:26
固定是6位字符串吗?
作者: z1366870839 时间: 2018-9-4 16:51
回复 3# Batcher
对的,固定六位或者七位 后缀一样 首是字母 6位或者7位是字母+数字
作者: xczxczxcz 时间: 2018-9-4 17:56
- @echo off & setlocal EnableDelayedExpansion
- cd/d "%~dp0"
-
- :FIRST
- set n=-1
- for %%a in (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 0 1 2 3 4 5 6 7 8 9) do (
- set /a n+=1
- set "str!n!=%%a"
- )
- set /a n0=%random%%%26,n1=%random%%%36,n2=%random%%%36,n3=%random%%%36
- set /a n4=%random%%%36,n5=%random%%%36,n6=%random%%%36
-
- call echo %%str!n0!%%%%str!n1!%%%%str!n2!%%%%str!n3!%%%%str!n4!%%%%str!n5!%%%%str!n6!%%@126.com
- timeout /t 2 /nobreak >nul
- goto FIRST
复制代码
作者: z1366870839 时间: 2018-9-4 18:30
回复 5# xczxczxcz
能调整几秒获取几万吗
作者: xczxczxcz 时间: 2018-9-4 18:47
回复 6# z1366870839
没有测试。下面的保证 至少有一位数字。并把结果输出到文本。- @echo off & setlocal EnableDelayedExpansion
- cd/d "%~dp0"
-
- :FIRST
- set n=-1
- for %%a in (q w e r t y u i o p a s d f g h j k l z x c v b n m 0 1 2 3 4 5 6 7 8 9) do (
- set /a n+=1
- set "str!n!=%%a"
- )
- set /a n0=%random%%%26,n1=%random%%%36,n2=%random%%%36,n3=%random%%%36
- set /a n4=%random%%%36,n5=%random%%%36,n6=%random%%%36
- echo %%str!n1!%% %%str!n2!%% %%str!n3!%% %%str!n4!%% %%str!n5!%% %%str!n6!%% | findstr "[0-9]">nul 2>&1 || goto FIRST
- call echo %%str!n0!%%%%str!n1!%%%%str!n2!%%%%str!n3!%%%%str!n4!%%%%str!n5!%%%%str!n6!%%@126.com>>email.txt
- goto FIRST
复制代码
你自己数一下。
作者: z1366870839 时间: 2018-9-4 18:49
回复 7# xczxczxcz
谢谢, 就是没有那个一共生成多少个
作者: xczxczxcz 时间: 2018-9-4 19:00
本帖最后由 xczxczxcz 于 2018-9-4 19:07 编辑
回复 8# z1366870839
你顶上没说,就没写了。
在 七楼 13 行 email.txt 的后面加上- && set /a a+=1 && echo !a!
复制代码
作者: z1366870839 时间: 2018-9-4 19:21
回复 9# xczxczxcz
哥,还是无限刷~~~
作者: xczxczxcz 时间: 2018-9-4 20:01
回复 10# z1366870839
你的意思是生成多少个后 自动停止 ? 现在这个是无限循环的。不想要的时候直接X掉。
假如生成 10000个。- @echo off & setlocal EnableDelayedExpansion
- cd/d "%~dp0"
-
- :FIRST
- set n=-1
- for %%a in (q w e r t y u i o p a s d f g h j k l z x c v b n m 0 1 2 3 4 5 6 7 8 9) do (set /a n+=1 & set "str!n!=%%a")
- set /a n0=%random%%%26,n1=%random%%%36,n2=%random%%%36,n3=%random%%%36,n4=%random%%%36,n5=%random%%%36,n6=%random%%%36
- echo %%str!n1!%% %%str!n2!%% %%str!n3!%% %%str!n4!%% %%str!n5!%% %%str!n6!%% | findstr "[0-9]">nul 2>&1 || goto FIRST
- call set "name=%%str!n0!%%%%str!n1!%%%%str!n2!%%%%str!n3!%%%%str!n4!%%%%str!n5!%%%%str!n6!%%"
- set /a a+=1
- call set/p=!a! !name!@126.com <nul & echo !name!@126.com>>email.txt & echo;
- if !a! geq 10000 goto END
- goto FIRST
- :END
- pause
复制代码
顶上版规不要挤牙膏,该批不去重复。生成的结果可能有重复。批生成的速度有限。几秒钟几万个,估计大神也有难度。太湖超算不一定能做到。批不吃硬件。
作者: z1366870839 时间: 2018-9-4 23:27
回复 11# xczxczxcz
谢谢
作者: zaqmlp 时间: 2018-9-5 00:50
本帖最后由 zaqmlp 于 2018-9-5 01:03 编辑
回复 11# xczxczxcz
这样改是否快些,另外利用多开合并方法,纯批也可以实现几秒钟几万个甚至更多吧- @echo off & setlocal EnableDelayedExpansion
- cd/d "%~dp0"
- set /a n=-1,m=1,count=10000
- for %%a in (q w e r t y u i o p a s d f g h j k l z x c v b n m 0 1 2 3 4 5 6 7 8 9) do (set /a n+=1 & set "#!n!=%%a")
- (for /l %%a in () do (
- set /a n0=!random!%%26,n1=!random!%%36,n2=!random!%%36,n3=!random!%%36,n4=!random!%%36,n5=!random!%%36,n6=!random!%%36
- set "s="
- for /l %%b in (0 1 6) do (for %%c in (!n%%b!) do set s=!s!!#%%c!)
- if !m! leq %count% (
- for /f "delims=0123456789" %%b in ("!s!") do (if "%%~b" neq "!s!" (set /a m+=1&echo;!s!@126.com))
- ) else exit
- ))>"email.txt"
复制代码
作者: 窄口牛 时间: 2018-9-5 06:53
一看就是刷客
作者: xczxczxcz 时间: 2018-9-5 07:51
回复 13# zaqmlp
谢谢!很历害。先在你的代码后面加了一段计时统计。结果程序走到指定次数后不往下走了。返回看批,把你写的 exit 改成 GOTO XXX ,发现不起作用。查MS命令行手册,说 for /l {%%|%} xxx in (<set>) 中的<set>说是要赋值。经过几次测试,发现赋了值的很容易在循环完后接着走下一步。而空值易卡在里面不出来,测试goto echo等无效。然后把计时统计放在大循环内的开始,这个有效。不过这样会影响主循环的时间。所以又放到了循环之后。最后把 exit 改成 call 时间统计。测试结果。批程式确实很快。8“985毫秒/10000;15”/20000个;23“/30000个。我自己优化的(没发)29”/10000个,时间是你的3倍多,太out了。我自己写的那个在用FOR给7个字符替代赋值只用了一层循环,把你的那个2重循环换成直接赋值,测试增加近一半的时间 15“/10000个。不过距离几秒钟几万个还有一段距离。当然平时用批主要是为了重复性工作。
作者: z1366870839 时间: 2018-9-5 18:34
回复 15# xczxczxcz
麻烦发我一下可以吗
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |