【发布时间】:2020-02-03 05:04:55
【问题描述】:
我有一个以以下块开头的脚本
Param(
[string] $c,
[Parameter(ValueFromRemainingArguments=$true)]
[string] $args
)
当我调用这个脚本并指定-n -cc -ou name -c 16.0. 时,它似乎只需要整个命令行并将其填充到$c 中。如果我用
[Parameter(Position=0, ValueFromRemainingArguments=$true)]
[string] $args
那么它实际上并没有拾取-c 16.0.并将其放入$c,而是将所有内容都放入$args。为什么?
所以我想要的很简单。 -c 可以指定,但不是必须的。还可以指定一堆其他参数,但不必指定,对于那些我只想将它们收集在一个字符串中的参数。如果指定了-c,我希望将其放入$c,但排除在$args 之外。如果未指定-c,则$c 变量应为空。如何做到这一点?
这是我尝试使用的答案,但对我不起作用:
How do I force declared parameters to require explicit naming?
【问题讨论】:
-
@darxsys 您实际上是如何调用脚本的?请显示您正在运行的确切命令。
-
虽然它可能很旧,但我完全同意@mklement0 应该重新打开它(并且我已经投了这样的票)。如果我没有看到这一点,它还只是帮助我防止了我以后工作中可能出现的更大问题。
标签: powershell scripting