我无法通过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,第一次调用调用应该是正确的语法。