我做了一些研究,但没有找到适合我的情况的任何东西。是否有PowerShell的本机方式将函数调用保存-或在最佳情况下-将参数化的函数调用保存为PowerShell中的对象,以便以后调用它们?
我想将其中一些排队,然后连续打电话。我想到的一种方法是将调用编写为字符串,然后通过Invoke-Expression调用它们,但这似乎很容易出错。
不幸的是,我无法为此目的构建类,因为我们主要使用PowerShell v3.0,并且它具有功能。因此,我要求一种内置的/已经存在的方式。
答案 0 :(得分:0)
我已经尝试过PetSerAl的评论中提供的示例,确实这是解决方案,或者非常接近并且适合我。
对于每个想尝试相同事物的人,这里有一个更精致的代码示例:
function Test
{
Param(
[Parameter(Mandatory = $false)]
[ref]$Inp
)
return ($Inp.Value -eq $null)
}
$List = @({ $(Test -Inp ([ref]'ref')) }, $false)
$Result = $(& $List[0])
$Result.GetType()
($Result -eq $List[1])
如果您用双引号括起来,那么在大括号中像PetSerAl一样,结果将被当作一个字符串,而忽略它们将返回结果作为原始DataType。
如果有人很好地解释了它的工作方式和原因(我认为这可能是通过模拟管道执行的ScriptBlock),请将其发布到此线程中,我将其标记为答案并标记为您的答案。 / p>