【发布时间】:2019-03-12 00:09:31
【问题描述】:
我有以下参数输入和用户可以输入的三个选项:
Param(
[Parameter(Mandatory=$true)]
[ValidateSet('View','Add','Remove')]
[String]$Command,
[Parameter(Mandatory=$false)]
[String]$UserID
)
如果$Command 是“添加”或“删除”,我怎样才能强制输入$UserID,而如果命令是“查看”则不是强制性的?
【问题讨论】:
-
制作不同的参数集,而不是使用一个参数
$Command。否则你将不得不使用动态参数。 -
@AnsgarWiechers 我对动态参数很好。我如何做到这一点?
-
我自己没用过动态参数,不过可能this will help。我的建议是:使用不同的(静态)参数集。
-
@AnsgarWiechers 好的,假设我创建了 $View、$Add 和 $Remove 参数。我怎么能说如果 $Add/$Remove,然后将 $UserID 设置为强制?
-
@AnsgarWiechers 快速提问;所以目前 $userID 将一个值作为输入。是否可以让它接受一串逗号分隔的值,以便一次添加/删除多个 ID,而不必为每个 ID 运行脚本?
标签: powershell parameter-passing