Ho scoperto di recente che le funzioni di PowerShell sono solo script di script con nome. Ad esempioNome comando di riferimento con trattini
function HelloWorld {
Write-Output "Hello world"
}
$hw = $function:HelloWorld
& $hw
Eseguirà il metodo HelloWorld.
Tuttavia, ciò che non sono stato in grado di capire, è come ottenere un riferimento a un metodo che ha un trattino nel suo nome:
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
Tutte le idee?
Mi rendo conto che avrei potuto fare qualcosa di simile:
$hw = (Get-Item function:Hello-World).ScriptBlock
ma è un po ' "rumoroso" e mi piace la funzione di $ sintassi
Questo non funziona per me. Eseguendo la funzione $ {Get-Item} non dà nulla – digitguy