使用PSModuleInfo :: invoke(...)方法

时间:2016-09-27 16:42:30

标签: powershell

我无法通过invoke(PSModuleInfo :: Invoke(...))将参数传递给模块中定义的函数。更具体地说,我需要将哈希表作为单个参数传递。

下面的代码示例意味着正在调用模块中的函数。但是,这个论点没有通过。

在模块中:

function MyFunc($arg)
{
     ....
}

在客户端:

$m =  Get-Module $name

$table = @{1 = 1; 2 = 2 }

$m.Invoke( {MyFunc}, @($table) ) # param is not passed
$m.Invoke( {MyFunc}, $table ) # param is not passed
$m.Invoke(  MyFunc,  $table ) # param is not passed

# Trying with scalar value
$x = 10
$m.Invoke( {MyFunc}, @($x) ) # param is not passed
$m.Invoke( {MyFunc}, $x ) # param is not passed
$m.Invoke(  MyFunc,  $x ) # param is not passed
$m.Invoke( {MyFunc}, 10 ) # This WORKS, 10 is assigned to $arg in a function

根据我的理解,根据: https://msdn.microsoft.com/enus/library/system.management.automation.psmoduleinfo.invoke(v=vs.85).aspx,第一次调用调用应该是正确的语法。

0 个答案:

没有答案