![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 16:55 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [讨论]如何用批处理生成可变长度的字符串?? |
| 可打印版本 915 / 9 |
| 第1楼 learner0 | 发表于 2008-02-29 00:21 |
| 初级用户 发帖 49 积分 108 | |
|
[讨论]如何用批处理生成可变长度的字符串?? 偶暂时还为想出,大家一起想想吧.....
|
|
| 第2楼 slore | 发表于 2008-02-29 00:43 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
随机生成一个数。当长度,把它扔到循环里当次数就完了。
|
|
| 第3楼 fastslz | 发表于 2008-02-29 00:59 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
没明白啥意思
??????? |
|
| 第4楼 learner0 | 发表于 2008-02-29 11:49 |
| 初级用户 发帖 49 积分 108 | |
|
非也,要求每次产生的字符串的长度都不同,用随机变量也难行呀......
[ Last edited by learner0 on 2008-2-29 at 11:50 AM ] |
|
| 第5楼 learner0 | 发表于 2008-02-29 12:00 |
| 初级用户 发帖 49 积分 108 | |
|
这是用随机变量产生的字符串,其长度有相同的...........
@echo off&setlocal enabledelayedexpansion color f2 for /l %%j in (1,1,28) do ( set a=!rd! set /p= a=!a! <nul if %%j gtr 2 call :rndstr %%j) echo.&pause :rndstr set str=abcdefghijklmnopqrstuvwxyz0123456789 set /a rd=%random%%%35+1 set str=!str:~%rd%! set str goto :eof [ Last edited by learner0 on 2008-2-29 at 12:55 PM ] |
|
| 第6楼 HAT | 发表于 2008-02-29 14:23 |
| 版主 发帖 5,017 积分 9,023 | |
Originally posted by learner0 at 2008-2-29 11:49 AM: 用系统时间(精确到秒)作为字符串长度变量 比如 C:\>echo %date% %time% 那就产生20080229130938个字符,在我们有生之年可以满足每次字符串的长度都不同^_^ |
|
| 第7楼 learner0 | 发表于 2008-02-29 14:43 |
| 初级用户 发帖 49 积分 108 | |
|
这个我知道,HAT兄搞^_^,你和slore兄的方法都行,该贴可结啦.....
[ Last edited by learner0 on 2008-2-29 at 02:46 PM ] |
|
| 第8楼 zh159 | 发表于 2008-02-29 16:46 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
这个是随机的,缺点是用findstr判断的效率低,利用call set str=%%random%%%%random%%增加随机位数
|
|
| 第9楼 pinghu | 发表于 2008-03-01 12:51 |
| 中级用户 发帖 130 积分 307 | |
|
既然是随机数,就避免不了重复,
要避免重复,就必须记住记住以前的每个随机数,用变量记忆太费资源,用文本记忆容易但查寻速度慢,很难找到折中的办法 我有个想法,能否用一个有规律的数列生成一个不重复的数列 希望大家一起研究 |
|
| 第10楼 everest79 | 发表于 2008-03-01 13:29 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
set 000=%random%/20
set /a 000%(%random%%9+1) |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |