我最近发现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