#眉標=PowerShell #副標=PowerShell = Shell + Script + .NET(8) #大標=劇本區塊與物件 #作者=文/蔡學鏞 ==<反灰>=========== PS > 1..5 |&{process{$_ * 2}} ================ ==<反灰>=========== PS > function foo {"2+2"} PS > foo 4 PS > (dir function:foo).ScriptBlock 2+2 ================ ==<反灰>=========== PS > $function:foo 2+2 PS > $function:foo.gettype().Fullname System.Management.Automation.ScriptBlock ================ ==<反灰>=========== PS > $function:foo = {"Bye!"} ================ ==<反灰>=========== PS > foo Bye! ================ ==<反灰>=========== PS > $s = "Hi there" ================ ==<反灰>=========== PS > $s.length 8 ================ ==<反灰>=========== PS > $s = add-member -passthru -in $s aliasproperty size length ================ ==<反灰>=========== PS > $s.size 8 ================ ==<反灰>=========== PS > function loop ([int] $i, [scriptblock] $b) { >> while ($i-- -gt 0) { . $b } >> } >> ================ ==<反灰>=========== PS > loop 3 { "Hello world" } Hello world Hello world Hello world ================ ==<反灰>=========== PS > $a = add-member -pass -in $a scriptmethod sum { >> $r=0 >> foreach ($e in $this) {$r += $e} >> $r >> } >> ================ ==<反灰>=========== PS > $a.sum() 10 ================ ==<反灰>=========== PS > invoke-expression '$a=2+2; $a' 4 ================ ==<反灰>=========== ExecutionContext變數 ================ ==<反灰>=========== PS > $function:foo = {"Hello there"} PS > foo Hello there ================ ==<反灰>=========== PS > new-item function:foo -value {"Hi!"} -force CommandType Name Definition ----------- ---- ---------- Function foo "Hi!" ================