Deep BlueVBScriptWMIPHPC语言JavaScriptWindows API路由器Windows函数Python | 一个复杂的VBS脚本问题——变量的变量如果说之前写的《一个简单的VBS脚本问题——两数相加》没有什么技术含量,那么这个问题就相对比较有技术含量了。一个很久以前别人问的问题:
自己先思考一下怎么做吧,我已经把这100个变量准备好了,点击这里获取。随机生成了100个[1,100]之间的数,所有数的和为5076,看看你算对了吗?
看到这个问题,我最先想到的是PHP,用变量的变量很容易实现: <?php /************************* Author: Demon Website: http://demon.tw E-mail: [email protected] *************************/ //此处省略100个变量 for($i = 1; $i <= 100; $i++) { $sum = $sum + ${"a$i"}; } echo $sum; ?> 但是别人问的是VBS,而不是PHP。按照他给出的代码,他也是想用变量的变量来实现,只可惜VBS中没有这种特性。 这个问题我当时想了好久,似乎也只能一个一个变量的加了,于是告诉他,这在VBS中无法实现。但是今天却无意中想到了实现的方法: 'Author: Demon 'Website: http://demon.tw 'E-mail: [email protected] '此处省略100个变量 For i = 1 To 100 str = str & "a" & i & "+" Next str = Left(str, Len(str) - 1) WScript.Echo Eval(str) 使用Eval可以用字符串动态构造出代码,在很多VBS病毒里都能看到Eval的影子,我当时怎么就没想到Eval呢?看来真的是不写病毒好多年。 |