PowerShell
매개 변수 세트
수색…
소개
매개 변수 세트 는 가능한 매개 변수 조합을 제한하거나 하나 이상의 매개 변수가 선택 될 때 매개 변수 사용을 시행하는 데 사용됩니다.
예제는 매개 변수 세트의 사용 및 이유를 설명합니다.
간단한 매개 변수 세트
function myFunction
{
param(
# If parameter 'a' is used, then 'c' is mandatory
# If parameter 'b' is used, then 'c' is optional, but allowed
# You can use parameter 'c' in combination with either 'a' or 'b'
# 'a' and 'b' cannot be used together
[parameter(ParameterSetName="AandC", mandatory=$true)]
[switch]$a,
[parameter(ParameterSetName="BandC", mandatory=$true)]
[switch]$b,
[parameter(ParameterSetName="AandC", mandatory=$true)]
[parameter(ParameterSetName="BandC", mandatory=$false)]
[switch]$c
)
# $PSCmdlet.ParameterSetName can be used to check which parameter set was used
Write-Host $PSCmdlet.ParameterSetName
}
# Valid syntaxes
myFunction -a -c
# => "Parameter set : AandC"
myFunction -b -c
# => "Parameter set : BandC"
myFunction -b
# => "Parameter set : BandC"
# Invalid syntaxes
myFunction -a -b
# => "Parameter set cannot be resolved using the specified named parameters."
myFunction -a
# => "Supply values for the following parameters:
# c:"
other가 선택되었을 때 매개 변수의 사용을 강제하는 Parameterset.
예를 들어 매개 변수 User가 제공되면 Password 매개 변수의 사용을 원할 수 있습니다. (그리고 그 반대)
Function Do-Something
{
Param
(
[Parameter(Mandatory=$true)]
[String]$SomeThingToDo,
[Parameter(ParameterSetName="Credentials", mandatory=$false)]
[String]$Computername = "LocalHost",
[Parameter(ParameterSetName="Credentials", mandatory=$true)]
[String]$User,
[Parameter(ParameterSetName="Credentials", mandatory=$true)]
[SecureString]$Password
)
#Do something
}
# This will not work he will ask for user and password
Do-Something -SomeThingToDo 'get-help about_Functions_Advanced' -ComputerName
# This will not work he will ask for password
Do-Something -SomeThingToDo 'get-help about_Functions_Advanced' -User
매개 변수 조합을 제한하도록 설정된 매개 변수
Function Do-Something
{
Param
(
[Parameter(Mandatory=$true)]
[String]$SomeThingToDo,
[Parameter(ParameterSetName="Silently", mandatory=$false)]
[Switch]$Silently,
[Parameter(ParameterSetName="Loudly", mandatory=$false)]
[Switch]$Loudly
)
#Do something
}
# This will not work because you can not use the combination Silently and Loudly
Do-Something -SomeThingToDo 'get-help about_Functions_Advanced' -Silently -Loudly
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow