title: empty parameters using alias in powershell
body: <p>I would like  <code>-h</code>  without passing a value to work as well as  <code>-h</code>  with a parameter:
  However, I would like the others to remain how they are... That is, they are optional, unless you alias a parameter and you are required to supply a value.</p>
  
  <pre><code>Param(
  $BadParam,
  [alias("h")][String]$Help,
  [alias("s")][String]$Server,    
  [alias("d")][String]$DocRoot,
  [alias("c")][String]$Commit,
  [alias("b")][String]$Branch
  )
  </code></pre>
  
  <p>For example (for lack of better):</p>
  
  <pre><code>if(!$Help)
  {
  Write-Host "Here's the menu for how it works bro."
  }
  
  if($Help)
  {
  Write-Host "Here's more info on that particular thing from the menu."
  }
  </code></pre>
  
  <p>How I would expect this to behave in shell:</p>
  
  <pre><code>-&gt; script.ps1 -s test -h
  -&gt; Here's the menu for how it works bro.
  
  -&gt; script.ps1 -s test -h server
  -&gt; Here's more info on that particular thing from the menu.
  
  -&gt; script.ps1 -s -h server
  -&gt; You are missing a value for -e.
  </code></pre>