Ссылка на имя команды с дефисами

Недавно я обнаружил, что функции 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

7
задан x0n 13 December 2011 в 15:31
поделиться