Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何仅为前3个参数要求输入参数,并将最后一个参数设为默认值?_Powershell - Fatal编程技术网

Powershell 如何仅为前3个参数要求输入参数,并将最后一个参数设为默认值?

Powershell 如何仅为前3个参数要求输入参数,并将最后一个参数设为默认值?,powershell,Powershell,我的脚本中有一个切换机制,可以看到 添加、删除OLE和删除成员 我希望他们需要输入$ROLE和$MEMBER,我知道如何使用条件if语句,如果未输入任何内容,将退出。但是,这意味着无需输入的视图可以绕过此输入要求 [CmdletBinding()] Param( [Parameter(ParameterSetName='Add', Mandatory=$true)] [Switch]$Add, [Parameter(ParameterSetName='RemoveRol

我的脚本中有一个切换机制,可以看到

添加、删除OLE和删除成员

我希望他们需要输入
$ROLE
$MEMBER
,我知道如何使用条件if语句,如果未输入任何内容,将退出。但是,这意味着无需输入的
视图
可以绕过此输入要求

[CmdletBinding()]
Param(
    [Parameter(ParameterSetName='Add', Mandatory=$true)]
    [Switch]$Add,

    [Parameter(ParameterSetName='RemoveRole', Mandatory=$true)]
    [Switch]$RemoveRole,

    [Parameter(ParameterSetName='RemoveMember', Mandatory=$true)]
    [Switch]$RemoveMember,

    [Parameter(ParameterSetName='View', Mandatory=$true)]
    [Switch]$View,

    [Parameter(ParameterSetName='Add', Mandatory=$true)]
    [Parameter(ParameterSetName='RemoveRole', Mandatory=$true)]
    [Parameter(ParameterSetName='RemoveMember', Mandatory=$true)]
    [Parameter(ParameterSetName='View', Mandatory=$false)]

    $ROLE = (Read-Host -prompt "Role"),
    $MEMBER = (Read-Host -prompt "Member")
)

如何使前3个选项需要输入,而视图则不需要输入?此外,如果用户未输入任何选项,如何查看默认参数选项?

通过指定设置默认参数:

[CmdletBinding(DefaultParameterSetName='View')]

您可以尝试以下代码:

[CmdletBinding(DefaultParameterSetName='View')]
Param(
[参数(ParameterSetName='Add',必填=$true)]
[开关]$Add,
[参数(ParameterSetName='RemoveOLE',必填项=$true)]
[开关]$OLE,
[参数(ParameterSetName='RemoveMember',必填=$true)]
[开关]$RemoveMember,
[参数(ParameterSetName='View',必填=$false)]
[切换]$View
)
如果($Add-或$RemoveOLE-或$RemoveMember){
$ROLE=(读取主机-提示“ROLE”)
$MEMBER=(读取主机-提示“MEMBER”)
}