How do I force declared parameters to require explicit naming?
powershell
Solution
ok, figured it out. declare like this:
param(
$installdir,
$compilemode,
$whatever,
[Parameter(Position=0, ValueFromRemainingArguments=$true)] $args
)
thanks to @latkin, who had already answered this at: Powershell non-positional, optional params
Problem
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? If my script declared the following parameters: ``` param($installdir, $compilemode, $whatever) ``` 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: ``` c:\> MyScript file-1.cs file-2.cs file-3.cs file-4.cs ``` and get all 4 strings appear $args, or alternatively, call: ``` c:\> MyScript -CompileMode simple file-1.cs -InstallDir c:\temp file-2.cs ``` and get values for $compilemode and $installdir with $args containing 2 files... how can I do that?