title: How do I force declared parameters to require explicit naming?
body: <p>I'm having a hard time thinking this through.  if I wanted all declared parameters to require explicit naming when they're set and I wanted to pick up anything unnamed from the $args variable, how would I do it?</p>
  
  <p>If my script declared the following parameters:</p>
  
  <pre><code>param($installdir, $compilemode, $whatever) 
  </code></pre>
  
  <p>then passing a list of files (in which case I don't want to specify the installation directory, a compile mode, etc.) the first three parameters would gobble my arguments.  So, I would like to pass:</p>
  
  <pre><code>c:\&gt; MyScript file-1.cs file-2.cs file-3.cs file-4.cs 
  </code></pre>
  
  <p>and get all 4 strings appear $args, or alternatively, call:</p>
  
  <pre><code>c:\&gt; MyScript -CompileMode simple file-1.cs -InstallDir c:\temp file-2.cs
  </code></pre>
  
  <p>and get values for $compilemode and $installdir with $args containing 2 files... how can I do that?</p>