Недавно я обнаружил, что функции Powershell называются просто блоками сценариев. Например,
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