Comment fournir des attributs de param pour un script dans Powershell?

J'ai ce script peut être appelé de deux façons:

MyScript -foo path\to\folder

ou

MyScript -bar path\to\folder

(Qui est, je peux passer un commutateur ainsi que d'un dossier ou d'un argument de type chaîne, plus un dossier.)

J'ai essayé de mettre déclarations de paramètres dans mon script de manière à refléter cette syntaxe:

param(
  [parameter(Mandatory=$false)] [switch]$foo,
  [parameter(Mandatory=$false)] [String]$bar,
  [parameter(Mandatory=$true)]  [System.IO.FileInfo]$path
)

Mais puis-je passer path explicitement pour appeler le script:

MyScript -l -path path\to\folder

Alors, comment puis-je le faire faire à la fois bar et path paramètres positionnels?

Note: Si j'ai choisi d'une manière extraordinairement stupide syntaxe pour appeler le script, je peux encore changer.

source d'informationauteur sbi