我正在从另一个ps1调用一个ps1脚本,这个脚本运行良好。现在,我想将参数从父ps1传递给子ps1。例如,master.ps1和client.ps1是两个脚本。2. client.ps1采用两个参数,我想通过master.ps1传递给它。
主脚本的代码:
Param(
[Parameter(Mandatory=$True,Position=4)]
[string]$clientid,
[Parameter(Mandatory=$True,Position=4)]
[string]$clientname
)
Invoke-Expression "$bpath\client.ps1" "$clientid" "$clientname"错误:
Invoke-Expression : A positional parameter cannot be found that accepts argument有什么建议吗?
发布于 2018-08-31 05:54:36
你可以测试:
& .\YourScript.ps1 Arg1 Arg2但是,如果希望保留Invoke-Expression,则存在其他解决方案,可以使用:
Invoke-Expression -Command ".\YourScript.ps1 Arg1 Arg2" 发布于 2018-08-31 05:57:21
参数可以在单个$var中作为数组完全传递,或者如果您传递的参数很少,则应该在其前缀加上param名称。试试下面这个应该能用的
Invoke-Expression "$bpath\client.ps1" -clientid $clientid -clientname $clientname或者您可以直接传递$var,如果您在"$var“前缀中添加了”$var“,它将变成字符串而不是param。
Invoke-Expression "$bpath\client.ps1" $clientid $clientnamehttps://stackoverflow.com/questions/52109122
复制相似问题