我很难想到这一点。如果我希望所有声明的参数在设置时需要显式命名,并且我想从$ args变量中选择未命名的任何内容,我该怎么做?
如果我的脚本声明了以下参数:
param($installdir, $compilemode, $whatever)
然后传递一个文件列表(在这种情况下我不想指定安装目录,编译模式等)前三个参数会吞噬我的参数。所以,我想通过:
c:\> MyScript file-1.cs file-2.cs file-3.cs file-4.cs
并获取所有4个字符串$ args,或者调用:
c:\> MyScript -CompileMode simple file-1.cs -InstallDir c:\temp file-2.cs
并获取$ compilemode和$ installdir的值,其中$ args包含2个文件...我该怎么做?
答案 0 :(得分:5)
param(
$installdir,
$compilemode,
$whatever,
[Parameter(Position=0, ValueFromRemainingArguments=$true)] $args
)
感谢@latkin,他已经在Powershell non-positional, optional params
回答了这个问题