我有一个internal.ps1
接受某些参数的脚本:
param ($paramA, $paramB)
Write-Host $PSBoundParameters
以及一个调用它的脚本caller.ps1
:
.\internal -paramA A -paramB B
它工作得很好:
PS C:\temp> .\caller
[paramA, A] [paramB, B] <<<< bounded to both params
但是,在调用者中,我想将参数保留在 var 中,并在以后使用。但是,这不起作用:
$parms = "-paramA A -paramB B"
# Later...
.\internal $parms
Result: [paramA, A -paramB B] <<<<< All got bounded to ParamA
也不使用数组:
$parms = @("A", "B")
# Later...
.\internal $parms
Result: [paramA, System.Object[]] <<<< Again, all bound to ParamA
我怎样才能做到这一点?请注意,实际的命令行更复杂,并且可能有未知的长度。