生成随机字符串的脚本不起作用
Script to generate random string not working
我正在尝试生成带有空格的随机字符串,但它不起作用:
/rs {
%i=1
%r=$rand(1,50)
%s=$rand(a,z)
while(%i <= %r) {
%i=%i+1
%s=%s $+ $rand(a,z)
if(1 == rand(1,4) %s=%s $+ $chr(32)
}
echo %s
}
Returns :
WHILE(%I Unknown command
有什么想法吗?
这将转到“别名”选项卡。使用 /SET
影响 mIRC 中的变量。另外,在括号前后放置空格。您还忘记了 IF
中 rand
之前的 $
。我还必须删除 $chr(32)
中的 $+
做作,否则它不起作用。这就是适合您的 mIRC 脚本。 :)
/rs {
/set %i 1
/unset %s
/set %r $rand(1,50)
while ( %i <= %r ) {
/set %i %i + 1
/set %s %s $+ $rand(a,z)
if ( 1 == $rand(1,4) ) /set %s %s $chr(32)
}
echo %s
}
这给了我一些结果:
oe ucrifaktgl qkr fn ydjujclgmc dob hlx rtgnqenhdy f
x gtnr ly qx j
stvusfvfrn y
z sj g aign zx royjbvkcu a t x b
m d
nttyckhwfaufoqjordfecn ib k xsl
adupbnnwoxt q
rzvlytv
pd
o ycj eq
您遇到了一些问题,这些只是其中的一小部分。
空格: mSL 语句在涉及 spaces 时是明智的,那些你应该把 spaces 放在 while (expression)
, if (expression)
甚至 %i = 1
和 %r = $rand(1,50)
等'
括号: 您可能忘记了 space 生成器条件中的小括号。应该是 if (1 == rand(1,4)) %s=%s $+ $chr(32)
$ 符号: 你也忘了把这个符号放在这个标识符之前 rand(1,4)
应该是 $rand(1,4)
固定代码段:
rs {
%i = 1
%r = $rand(1,50)
%s = $rand(a,z)
while (%i <= %r) {
%i = %i + 1
%s = %s $+ $rand(a,z)
if (1 == $rand(1,4)) %s = %s $chr(32)
}
echo -ag %s
}
我冒昧地设计了一些不同的代码,现在您可以将其用作 $identifier
而不是别名,这将为您提供更大的灵活性和可用性。
用法:
echo -ag $rs
(默认长度为 50 个字符)
echo -ag $rs(20)
(长度为 20 个字符的随机字符串)
set %myName $rs(15)
(将输出的随机字符串保存到常量变量中)
片段:
rs {
if (!) {
tokenize 32 50
}
var %randString
var %randStringLength = $rand(1, )
var %i = 1
while (%i <= %randStringLength) {
%randString = %randString $+ $rand(a, z)
if ($rand(1, 4) == 1) {
%randString = %randString $chr(32)
}
inc %i
}
return %randString
}
聪明的句子,单词,昵称生成器
命令:
/regdom
//echo $regword(3,10).text-30
示例:
gezodifix sebiy podagafiw curetumubih gidaharik tibovifec lacuxujor tumihugob yiwosinok nifabatuv boyeces cadamujez wuz nowafeh webenevip wekegibis herumeyab wefehadal jocavor kasitijor wizepijab givepulec pafucuk cebohes yirujisap xer nucupiyas lugob dogev moy
玩得开心
alias regword { noop $regex($prop,/(\d+$)) | var %i-l $regml(1) | while %i-l { var %imp $addtok(%imp,$regdom(,).w,32) | dec %i-l } | return %imp }
alias regdom {
if !$isid {
var %e- echo 5
%e- *** Commands:
%e- *** $!regdom(N,N).w N<N 1-10 From 1 to 10 character random words
%e- : $!regdom(3,10).w $!regdom(3,10)
%e- :*** Command KEY & Result:
%e- : W DUKEPOGEH
%e- : w dukepogeh
%e- : WR Mix
%e- : NR WILIXENIKIZUPOG_74
%e- : nr zeritacen^49
%e- : Mix mixing special characters H^a]y|u^M]A-g´
%e- : *** BONUS
%e- : ipsum regular word $!regword(3,10).text-10
%e- : Letters of words in the range of 3 to 10. 10 words creates Sentence
}
if $isid {
if < && > 40 { echo 4 *** The maximum length value should be 1<40 | return }
if < && <= 40 {
var %l' $r(,),%s' a e i o u ,%a' b c d f g h j k l m n p r s t v x w y z . | :r
var %k' $addtok(%k',$gettok(%a',$r(1,$numtok(%a',32)),32),32)
if $len(%k') < %l' goto r
if $len(%k') >= %l' {
var %s- _.-.|.\.[.].^.´
var %r1 $regsubex($regsubex(%k',/(\W)/ig,$gettok(%s',$r(1,$numtok(%s',32)),32)),/([a-f]|[c-g]|[h-z])/g,$iif($r(0,20) > 15,$upper(\t),\t))
var %r2 $+($gettok(%s-,$r(1,$gettok(%s-,0,46)),46),$r(18,85))
var %r3 $regsubex($regsubex(%k',/(\W)/ig,$gettok(%s',$r(1,$numtok(%s',32)),32)),/([a-f]|[c-g]|[h-z])/g,$iif($r(1,100) > 10, $&
$+($iif($r(0,20) > 15,$upper(\t),\t),$gettok(%s-,$r(1,$gettok(%s-,0,46)),46)),$iif($r(0,20) > 15,$upper(\t),\t)))
if $prop === NR return $+($upper(%r1),%r2)
if $prop === nr return $+($lower(%r1),%r2)
if $prop === W return $upper(%r1)
if $prop === w return $lower(%r1)
if $prop === mix return %r3
if $prop === WR || !$prop { return $iif($r(1,10) > 5,%r1,$+(%r1,%r2)) }
else echo 5 *** incorrect key | return
} }
else echo 5 ***Incorrect or missing parameters..
} }
我正在尝试生成带有空格的随机字符串,但它不起作用:
/rs {
%i=1
%r=$rand(1,50)
%s=$rand(a,z)
while(%i <= %r) {
%i=%i+1
%s=%s $+ $rand(a,z)
if(1 == rand(1,4) %s=%s $+ $chr(32)
}
echo %s
}
Returns :
WHILE(%I Unknown command
有什么想法吗?
这将转到“别名”选项卡。使用 /SET
影响 mIRC 中的变量。另外,在括号前后放置空格。您还忘记了 IF
中 rand
之前的 $
。我还必须删除 $chr(32)
中的 $+
做作,否则它不起作用。这就是适合您的 mIRC 脚本。 :)
/rs {
/set %i 1
/unset %s
/set %r $rand(1,50)
while ( %i <= %r ) {
/set %i %i + 1
/set %s %s $+ $rand(a,z)
if ( 1 == $rand(1,4) ) /set %s %s $chr(32)
}
echo %s
}
这给了我一些结果:
oe ucrifaktgl qkr fn ydjujclgmc dob hlx rtgnqenhdy f
x gtnr ly qx j
stvusfvfrn y
z sj g aign zx royjbvkcu a t x b
m d
nttyckhwfaufoqjordfecn ib k xsl
adupbnnwoxt q
rzvlytv
pd
o ycj eq
您遇到了一些问题,这些只是其中的一小部分。
空格: mSL 语句在涉及 spaces 时是明智的,那些你应该把 spaces 放在
while (expression)
,if (expression)
甚至%i = 1
和%r = $rand(1,50)
等'括号: 您可能忘记了 space 生成器条件中的小括号。应该是
if (1 == rand(1,4)) %s=%s $+ $chr(32)
$ 符号: 你也忘了把这个符号放在这个标识符之前
rand(1,4)
应该是$rand(1,4)
固定代码段:
rs {
%i = 1
%r = $rand(1,50)
%s = $rand(a,z)
while (%i <= %r) {
%i = %i + 1
%s = %s $+ $rand(a,z)
if (1 == $rand(1,4)) %s = %s $chr(32)
}
echo -ag %s
}
我冒昧地设计了一些不同的代码,现在您可以将其用作 $identifier
而不是别名,这将为您提供更大的灵活性和可用性。
用法:
echo -ag $rs
(默认长度为 50 个字符)echo -ag $rs(20)
(长度为 20 个字符的随机字符串)set %myName $rs(15)
(将输出的随机字符串保存到常量变量中)
片段:
rs {
if (!) {
tokenize 32 50
}
var %randString
var %randStringLength = $rand(1, )
var %i = 1
while (%i <= %randStringLength) {
%randString = %randString $+ $rand(a, z)
if ($rand(1, 4) == 1) {
%randString = %randString $chr(32)
}
inc %i
}
return %randString
}
聪明的句子,单词,昵称生成器 命令:
/regdom
//echo $regword(3,10).text-30
示例:
gezodifix sebiy podagafiw curetumubih gidaharik tibovifec lacuxujor tumihugob yiwosinok nifabatuv boyeces cadamujez wuz nowafeh webenevip wekegibis herumeyab wefehadal jocavor kasitijor wizepijab givepulec pafucuk cebohes yirujisap xer nucupiyas lugob dogev moy
玩得开心
alias regword { noop $regex($prop,/(\d+$)) | var %i-l $regml(1) | while %i-l { var %imp $addtok(%imp,$regdom(,).w,32) | dec %i-l } | return %imp }
alias regdom {
if !$isid {
var %e- echo 5
%e- *** Commands:
%e- *** $!regdom(N,N).w N<N 1-10 From 1 to 10 character random words
%e- : $!regdom(3,10).w $!regdom(3,10)
%e- :*** Command KEY & Result:
%e- : W DUKEPOGEH
%e- : w dukepogeh
%e- : WR Mix
%e- : NR WILIXENIKIZUPOG_74
%e- : nr zeritacen^49
%e- : Mix mixing special characters H^a]y|u^M]A-g´
%e- : *** BONUS
%e- : ipsum regular word $!regword(3,10).text-10
%e- : Letters of words in the range of 3 to 10. 10 words creates Sentence
}
if $isid {
if < && > 40 { echo 4 *** The maximum length value should be 1<40 | return }
if < && <= 40 {
var %l' $r(,),%s' a e i o u ,%a' b c d f g h j k l m n p r s t v x w y z . | :r
var %k' $addtok(%k',$gettok(%a',$r(1,$numtok(%a',32)),32),32)
if $len(%k') < %l' goto r
if $len(%k') >= %l' {
var %s- _.-.|.\.[.].^.´
var %r1 $regsubex($regsubex(%k',/(\W)/ig,$gettok(%s',$r(1,$numtok(%s',32)),32)),/([a-f]|[c-g]|[h-z])/g,$iif($r(0,20) > 15,$upper(\t),\t))
var %r2 $+($gettok(%s-,$r(1,$gettok(%s-,0,46)),46),$r(18,85))
var %r3 $regsubex($regsubex(%k',/(\W)/ig,$gettok(%s',$r(1,$numtok(%s',32)),32)),/([a-f]|[c-g]|[h-z])/g,$iif($r(1,100) > 10, $&
$+($iif($r(0,20) > 15,$upper(\t),\t),$gettok(%s-,$r(1,$gettok(%s-,0,46)),46)),$iif($r(0,20) > 15,$upper(\t),\t)))
if $prop === NR return $+($upper(%r1),%r2)
if $prop === nr return $+($lower(%r1),%r2)
if $prop === W return $upper(%r1)
if $prop === w return $lower(%r1)
if $prop === mix return %r3
if $prop === WR || !$prop { return $iif($r(1,10) > 5,%r1,$+(%r1,%r2)) }
else echo 5 *** incorrect key | return
} }
else echo 5 ***Incorrect or missing parameters..
} }