 
- 帖子
- 2874
- 积分
- 7021
- 技术
- 336
- 捐助
- 0
- 注册时间
- 2011-6-2
|
本篇文章引用的小例子来自如下链接:
http://bbs.chinaunix.net/thread-365508-1-1.html
这篇帖子主要讨论了eval的作用, 我们将会就变量展开进行简单的研究.
在PowerShell如果我定义了如下的变量:
PS C:\> $a = 'get-date'; $b = 'a'; $c = 'b'; $d = 'c'
PS C:\> "`$a = {0}`n`$b = {1}`n`$c = {2}`n$d = {3}" -f $a,$b,$c,$d
$a = get-date
$b = a
$c = b
$d = c
PS C:\>
|
我希望能通过传递$d这个参数, 取得get-date字符串. 因此, 我编写了如下的小函数:
PS C:\> function ier ($cmd) {
>> while (dir -Path variable: -Name | ?{$_ -eq $cmd})
>> {
>> $cmd = Invoke-Expression `$$cmd
>> }
>> $cmd
>> }
>>
PS C:\>
|
该函数会查看传递进来的变量是否存在, 如果存在就会被递归的展开, 会输出最后的命令. 最后, 用执行匿名代码段将递归展开的字符串执行:
PS C:\> ier $d
get-date
PS C:\> & $(ier $d)
2007年7月6日 1:30:03
PS C:\>
|
时间不早了...准备休息了..
http://blog.chinaunix.net/uid-9781829-id-1997701.html |
|