相关疑难解决方法(0)

PowerShell:将函数作为参数传递

我编写了函数'A',它将调用许多其他函数之一.为了保存重写函数'A',我想传递函数作为函数'A'的参数调用.例如:

function A{
    Param($functionToCall)
    Write-Host "I'm calling : $functionToCall"
}

function B{
    Write-Host "Function B"
}

Function C{
    write-host "Function C"
}

A -functionToCall C
Run Code Online (Sandbox Code Playgroud)

返回:我正在打电话:C

我期待它回归:我在呼唤:功能C.

我尝试了各种各样的东西,比如:

Param([scriptblock]$functionToCall)
Run Code Online (Sandbox Code Playgroud)

无法将System.String转换为ScriptBlock

A -functionToCall $function:C
Run Code Online (Sandbox Code Playgroud)

返回"写主机"功能C"

A - functionToCall (&C)
Run Code Online (Sandbox Code Playgroud)

这在其余部分之前进行评估:

 Function C
 I'm Calling :
Run Code Online (Sandbox Code Playgroud)

我确定这是编程101,但我无法弄清楚正确的语法或它是什么我做错了.我们将非常感激地提供任何帮助.非常感谢.

powershell parameter-passing calling-convention

32
推荐指数
5
解决办法
2万
查看次数