$cmd = {
param([System.Array]$filestocopy = $(throw "need files"),
[bool]$copyxml)
if($copy)
#do stuff
}
$files = @("one","two","three")
invoke-command -session $s -scriptblock $cmd -argumentlist (,$files) $copyxml
错误:
Invoke-Command:找不到接受参数' True'的位置参数。
我搜索过高和低,无法找到如何传入数组以及参数列表中的内容。我尝试过:(,$files,$copyxml)
,(,$files),$copyxml
和(,$files) $copyxml
有办法做到这一点吗?
答案 0 :(得分:3)
参数-ArgumentList
的参数必须是数组,否则$copyxml
将被解释为Invoke-Command
的下一个位置参数。此外,在子表达式((,$files)
)中传递数组将导致它被损坏。简单地传递变量($files
)就足够了。改变这个:
invoke-command -session $s -scriptblock $cmd -argumentlist (,$files) $copyxml
进入这个:
invoke-command -session $s -scriptblock $cmd -argumentlist $files,$copyxml