本帖最后由 kofbld 于 2015-5-30 00:24 编辑
- @echo off&setlocal EnableDelayedExpansion
-
- set "a=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- set "b=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- set /a s1=%random%%%9+1
- set /a s2=%random%%%25+1
- set /a s3=%random%%%25+1
- set /a s4=%random%%%35+1
- set /a s5=%random%%%35+1
- set /a s6=%random%%%35+1
- set /a s7=%random%%%35+1
- set /a s8=%random%%%35+1
- set "s=%s1%!b:~%s2%,1!!b:~%s3%,1!!a:~%s4%,1!!a:~%s5%,1!!a:~%s6%,1!!a:~%s7%,1!!a:~%s8%,1!"
- >>d:\test.txt echo %s%
- endlocal
- exit
复制代码 以上代码实现随机生成8个随机字符,第1位1-9的数字,第2、3位26个大写字母,第4-8位随机数字或大写字母。
在单机随机生成基本不会重复,但是在不同机子上同时运行后,生成的随机字符合并后查重发现存在大量重复!
怀疑random伪随机的问题,请问大神们怎么才能解决不同机子同时或不同时运行该批处理尽量不产生重复呢?
补充:每一台单独运行均不会有重复,但是把每台生成的结果合并去重发现有大量重复!测试发现同时运行的话重复率极高,不同时运行也存在不少重复! |