Board logo

标题: [文本处理] 批处理如何生成固定字符串+随机数? [打印本页]

作者: bh62549    时间: 2019-10-24 13:44     标题: 批处理如何生成固定字符串+随机数?

在论坛上查了很多教程,有现成bat。就是没有固定字符串+随机数。
固定=https://www.2345.com/
随机16位大写字母数字=2ICJ1S06DANS4W57
组合=https://www.2345.com/2ICJ1S06DANS4W57
经常先在网上免费生成随机网站上生成一定数量的随机,再手动复制到固定字串后面。
求个bat最好能检查去重复,生成的字符串能有换行(两组字符串中间有一空行),能一次生成60组以上,

----------------------------------------------------------------------------------------------------------------------
https://www.2345.com/FECJ1S06DANHGW51

https://www.2345.com/KRCJ1S06DANDFW52

https://www.2345.com/HTYJ1S06DANGFW53

https://www.2345.com/MCCJ1S06DANSCW54

类似这样的效果
作者: xczxczxcz    时间: 2019-10-24 15:24

批处理生成这种随机大写:先设定一串26个大写字母,再通过随机一串数字与某某的余数之类来截取位置的字母,再拼起来。很累的。大致过程就是介样子。
作者: bh62549    时间: 2019-10-24 19:56

批处理生成这种随机大写:先设定一串26个大写字母,再通过随机一串数字与某某的余数之类来截取位置的字母, ...
xczxczxcz 发表于 2019-10-24 15:24


如果是单纯数字不要字母呢???
作者: Batcher    时间: 2019-10-24 21:34

回复 3# bh62549


    你在论坛找到的哪个代码能生成符合要求的随机数,发出来,我告诉你怎么添加固定字符串。
作者: 505250350    时间: 2019-10-25 07:34

  1. @echo off & setlocal enabledelayedexpansion
  2. ::固定字符串
  3. set "s1=https://www.2345.com/"
  4. ::随机位数
  5. set /a ws=16
  6. ::一次生成组数
  7. set /a zs=120
  8. set /a a=0
  9. set /a b=0
  10. set "s2="
  11. set "str=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
  12. del str.txt 1>nul 2>nul
  13. :mm
  14. set /a r=!random!%%36
  15. set s2=%s2%!str:~%r%,1!
  16. set /a a+=1
  17. if %a% lss %ws% goto mm
  18. (echo %s1%%s2%&echo.)>>str.txt
  19. set "s2="
  20. set /a a=0
  21. set /a b+=1
  22. if %b% lss %zs% goto mm
复制代码

作者: codegay    时间: 2019-10-25 11:47

本帖最后由 codegay 于 2019-10-25 13:14 编辑

nim语言版,之前写过的.稍稍改下了
  1. import os, random, times
  2. var t =  epochTime()
  3. randomize()
  4. let chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
  5. 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
  6. 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
  7. # 随机字符的长度
  8. let strcounter = 16
  9. let linecounter = 1000000
  10. #输出文件
  11. var f = open(getAppDir() / "result.txt", fmAppend)
  12. for i in 1 .. linecounter:
  13.     var str = "bathome.com我带你们打"
  14.     for n in 1 .. strcounter:
  15.       str.add(sample(chars))
  16.     str.add("\r\n")
  17.     str.add("\r\n")
  18.     f.write(str)
  19. f.close()
  20. echo epochTime() - t
复制代码
我编译好的可执行文件72小时内可下载:
编译参数 nim c -d:danger snake.nim
https://c-t.work/s/65a89db4b96c44
作者: xczxczxcz    时间: 2019-10-26 16:24

来个优雅点的?
  1. $int=(65..90)+(48..57);
  2. for($i=1;$i -le 60;$i++){'https://www.2345.com/'+(-join (1..16|%{[char][int](Get-Random $int)}))}
复制代码

作者: xczxczxcz    时间: 2019-10-26 16:27

  1. $int=(65..90)+(48..57);1..60|%{'https://www.2345.com/'+(-join (1..16|%{[char][int](Get-Random $int)}))}
复制代码

作者: 523066680    时间: 2019-10-26 17:10

say join "", map { ('0'..'9','A'..'Z')[rand(36)] } (1..16) for (1..60);
骆驼
作者: terse    时间: 2019-10-26 22:46

本帖最后由 terse 于 2019-10-27 23:16 编辑

上面加个参数
  1. 1..60|%{'https://www.2345.com/'+-join($(Get-Random (48..57 + 65..90) -count 16)|%{[char]$_})}
复制代码
让它短一点
  1. 1..60|%{'https://www.2345.com/'+-join([char[]](48..57 + 65..90)|Get-Random -Count 16)}
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2