title: How to keep parameter list in a variable
body: <p>I have a script <code>internal.ps1</code> which accepts certain params:</p>
  
  <pre><code>param ($paramA, $paramB)
  Write-Host $PSBoundParameters
  </code></pre>
  
  <p>And a script <code>caller.ps1</code> that calls it:</p>
  
  <pre><code>.\internal -paramA A -paramB B
  </code></pre>
  
  <p>It works great:</p>
  
  <pre><code>PS C:\temp&gt; .\caller
  [paramA, A] [paramB, B]    &lt;&lt;&lt;&lt; bounded to both params
  </code></pre>
  
  <p>However, in caller I want to keep the parameters to internal in a var, and use it later. However, that doesn't work:</p>
  
  <pre><code>$parms = "-paramA A -paramB B"
  # Later...
  .\internal $parms
  
  Result: [paramA, A -paramB B]   &lt;&lt;&lt;&lt;&lt; All got bounded to ParamA
  </code></pre>
  
  <p>Neither does using an array:</p>
  
  <pre><code>$parms = @("A", "B")
  # Later...
  .\internal $parms
  
  Result: [paramA, System.Object[]]  &lt;&lt;&lt;&lt; Again, all bound to ParamA
  </code></pre>
  
  <p>How can I accomplish this? Note that the actual commandline is more complex, and may have unknown length.</p>