我正在尝试使用 Start-Job 启动一个新的 Powershell 脚本。新脚本有几个参数(一些是可选的,一些不是),所以我想制作一个哈希表并将它们分解。然而,其中一个参数本身就是一个哈希表。我正在尝试这样开始工作:
$MyStringParam = "string1"
$MyHashParam = @{}
$MyHashParam.Add("Key1", "hashvalue1")
$arguments = @{MyStringParam=$MyStringParam;MyHashParam=$MyHashParam}
Start-Job -Name "MyJob" -ScriptBlock ([scriptblock]::create("C:\myscript.ps1 $(&{$args} @arguments)"))
于是我在新工作中得到这个错误:
Cannot process argument transformation on parameter 'arguments'.
Cannot convert the "System.Collections.Hashtable" value of
type "System.String" to type "System.Collections.Hashtable".
看起来它正在将我想要作为哈希表传递的值作为字符串处理。对于我的生活,我无法弄清楚如何解决这个问题。任何人都可以帮忙吗?