Board logo

标题: [讨论]如何用批处理生成可变长度的字符串?? [打印本页]

作者: learner0     时间: 2008-2-29 00:21    标题: [讨论]如何用批处理生成可变长度的字符串??

偶暂时还为想出,大家一起想想吧.....

作者: slore     时间: 2008-2-29 00:43
随机生成一个数。当长度,把它扔到循环里当次数就完了。

作者: fastslz     时间: 2008-2-29 00:59
没明白啥意思
@echo off
for /l %%i in (0,1,200) do set /p= %%i<nul&ping -w200 127.1.0>nul
pause
???????

作者: learner0     时间: 2008-2-29 11:49
非也,要求每次产生的字符串的长度都不同,用随机变量也难行呀...... [ Last edited by learner0 on 2008-2-29 at 11:50 AM ]

作者: learner0     时间: 2008-2-29 12:00
这是用随机变量产生的字符串,其长度有相同的........... @echo off&setlocal enabledelayedexpansion color f2 for /l %%j in (1,1,28) do ( set a[%%j]=!rd! set /p= a[%%j]=!a[%%j]! <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 ]

作者: HAT     时间: 2008-2-29 14:23
Originally posted by learner0 at 2008-2-29 11:49 AM: 非也,要求每次产生的字符串的长度都不同,用随机变量也难行呀...... [ Last edited by learner0 on 2008-2-29 at 11:50 AM ]
用系统时间(精确到秒)作为字符串长度变量 比如
C:\>echo %date% %time% 02/29/2008 Fri 13:09:38.73
那就产生20080229130938个字符,在我们有生之年可以满足每次字符串的长度都不同^_^

作者: learner0     时间: 2008-2-29 14:43
这个我知道,HAT兄搞^_^,你和slore兄的方法都行,该贴可结啦..... [ Last edited by learner0 on 2008-2-29 at 02:46 PM ]

作者: zh159     时间: 2008-2-29 16:46
这个是随机的,缺点是用findstr判断的效率低,利用call set str=%%random%%%%random%%增加随机位数
@echo off
cd.>list.txt
:loop
set/a n+=1
call set str=%%random%%
findstr /c:"[%str%]" list.txt&&goto loop||>>list.txt echo [%str%]
echo %n% %str%
if %n% lss 50 goto loop
pause

作者: pinghu     时间: 2008-3-1 12:51
既然是随机数,就避免不了重复, 要避免重复,就必须记住记住以前的每个随机数,用变量记忆太费资源,用文本记忆容易但查寻速度慢,很难找到折中的办法 我有个想法,能否用一个有规律的数列生成一个不重复的数列 希望大家一起研究

作者: everest79     时间: 2008-3-1 13:29
set 000=%random%/20 set /a 000%(%random%%9+1)