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

[文本处理] 批处理如何生成固定字符串+随机数?

[复制链接]
发表于 2019-10-24 13:44:03 | 显示全部楼层 |阅读模式
在论坛上查了很多教程,有现成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

类似这样的效果
发表于 2019-10-24 15:24:25 | 显示全部楼层
批处理生成这种随机大写:先设定一串26个大写字母,再通过随机一串数字与某某的余数之类来截取位置的字母,再拼起来。很累的。大致过程就是介样子。
 楼主| 发表于 2019-10-24 19:56:01 | 显示全部楼层
批处理生成这种随机大写:先设定一串26个大写字母,再通过随机一串数字与某某的余数之类来截取位置的字母, ...
xczxczxcz 发表于 2019-10-24 15:24


如果是单纯数字不要字母呢???
发表于 2019-10-24 21:34:12 | 显示全部楼层
回复 3# bh62549


    你在论坛找到的哪个代码能生成符合要求的随机数,发出来,我告诉你怎么添加固定字符串。
发表于 2019-10-25 07:34:01 | 显示全部楼层


  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

复制代码
发表于 2019-10-25 11:47:42 | 显示全部楼层
本帖最后由 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
发表于 2019-10-26 16:24:17 | 显示全部楼层
来个优雅点的?

  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)}))}
复制代码
发表于 2019-10-26 16:27:32 | 显示全部楼层
  1. $int=(65..90)+(48..57);1..60|%{'https://www.2345.com/'+(-join (1..16|%{[char][int](Get-Random $int)}))}
复制代码
发表于 2019-10-26 17:10:44 | 显示全部楼层
say join "", map { ('0'..'9','A'..'Z')[rand(36)] } (1..16) for (1..60);
骆驼
发表于 2019-10-26 22:46:33 | 显示全部楼层
本帖最后由 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)}
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 15:31 , Processed in 0.019926 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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