También podría declarar explícitamente parámetros con nombre. Por ejemplo:
param([switch]$someBoolSwitch=$false, [String]$nameOfSomething="some default string")
Esto permite pasar de argumentos con nombre a la secuencia de comandos, como el siguiente ejemplo:
.\<nameOfScript.ps1> -someBoolSwitch -nameOfSomething "Slayer Roolz!"
y si se omitiera -nameOfSomething "Slayer Roolz!"
, entonces $nameOfSomething
sólo tendría por defecto "some default sting"
. Del mismo modo, $someBoolSwitch
se establece de manera predeterminada en $false
a menos que se defina lo contrario.
Este método tiene la ventaja de permitirle, como desarrollador, decidir qué parámetros son necesarios y cuáles se pueden omitir o no. Además, le permite al usuario ingresar argumentos en el orden que desee, ya que son nombrados y no posicionales.
Una desventaja de tener parámetros nombrados en lugar de parámetros posicionales es que la invocación de la línea de comandos puede llegar a ser bastante grande ya que el usuario tiene que escribir cada nombre de parámetro.