如何将函数保存到变量中?

XP1*_*XP1 3 powershell

如何将函数保存到变量中?

function sayHello {
    write-host Hello, world!
}

$a = sayHello
Run Code Online (Sandbox Code Playgroud)

然后,我想打电话$a.

另一个例子:

$a = get-childItem
$a -name
Run Code Online (Sandbox Code Playgroud)

Mat*_*sen 9

您可以使用function变量scope限定符来引用函数定义本身:

$helloFunc = $function:sayHello
Run Code Online (Sandbox Code Playgroud)

现在您可以使用call运算符(&)调用它:

& $helloFunc
Run Code Online (Sandbox Code Playgroud)

调用操作符也支持参数:

PS C:\> function test-param {param($a,$b) $b,$a |Write-Host}
PS C:\> $tp = ${function:test-param}
PS C:\> & $tp 123 456
456
123
PS C:\> & $tp -b 123 -a 456
123
456
Run Code Online (Sandbox Code Playgroud)