gpt4 book ai didi

powershell - 将函数作为参数传递

转载 作者:行者123 更新时间:2023-12-03 08:20:13 25 4
gpt4 key购买 nike

我已经编写了函数“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

返回: 我打电话: C

我期待它返回:我正在调用:函数 C。

我尝试了各种事情,例如:
Param([scriptblock]$functionToCall)

无法将 System.String 转换为 ScriptBlock
A -functionToCall $function:C

返回“写主机”函数 C”
A - functionToCall (&C)

这在它的其余部分之前进行评估:
 Function C
I'm Calling :

我确定这是编程 101,但我无法计算出正确的语法或我做错了什么。

最佳答案

这是你需要的吗?

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

#access the function-object like this.. Ex. get the value of the StartPosition property
(Get-Item "function:$functionToCall").ScriptBlock.StartPosition

}

function B{
Write-Host "Function B"
}

Function C{
write-host "Function C"
}


PS> a -functionToCall c

I'm calling : c


Content : Function C{
write-host "Function C"
}
Type : Position
Start : 307
Length : 43
StartLine : 14
StartColumn : 1
EndLine : 16
EndColumn : 2

关于powershell - 将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22129621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com