Вы можете создать функцию, которая принимает блок скриптов, вызывает GetNewClosure и возвращает закрытие. Важно, чтобы вы вызывали эту функцию, используя оператор точки, например ::1001
function =>([scriptblock]$_sb_)
{
$_sb_.GetNewClosure()
}
function A($block)
{
B (. => {Write-Host 2; &$block})
}
function B($block) {Write-Host 1;&$block}
A {Write-Host 3}
Не уверен, что это намного лучше, чем просто вызывать GetNewClosure () в блоке скриптов. Обратите внимание, что вы можете выбрать другое имя для функции. Я собирался что-то более похожее на C # лямбды.