我最近發現Powershell函數只是名爲scriptblocks。例如帶有破折號的參考命令名稱
function HelloWorld {
Write-Output "Hello world"
}
$hw = $function:HelloWorld
& $hw
將執行HelloWorld方法。
不過,我一直無法弄清楚,是怎麼去,有一個破折號在它的名稱的方法的引用:
function Hello-World {
Write-Output "Hello world"
}
$hw = $function:Hello-World
You must provide a value expression on the right-hand side of the '-' operator.
At line:1 char:27
+ $hw = $function:Hello- <<<< World
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
任何想法?
我知道,我可以這樣做:
$hw = (Get-Item function:Hello-World).ScriptBlock
但它是一個有點「吵」,我喜歡$函數的語法
這不適用於我。執行$ {function:Get-Item}什麼也沒有 – digitguy