Board logo

标题: [转载代码] 用PowerShell实现递归还原变量 [打印本页]

作者: DAIC    时间: 2013-10-18 13:21     标题: 用PowerShell实现递归还原变量

本篇文章引用的小例子来自如下链接:
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
作者: PowerShell    时间: 2013-10-18 18:53

此文作者的脑袋是老旧脑袋.
其思路就是老旧的思路.即第一代脚本,
总之我认为此人,[精通第一代脚本之妙,不懂面向对象的第二代脚本之妙]即总想着搞字符串操作,不想着用属性方法解决问题
写脚本这家伙总想把python搞成bash,总想把powershell搞成bat或bash.
鉴定完毕




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2