Egyszerre kötelező és szabadon választott paraméter

A paraméter-készletek és többszörös Parameter-címkék használatával azt is megvalósíthatjuk, hogy bizonyos paraméterek bizonyos esetekben kötelezők legyenek, máskor meg opcionálisak. Az alábbi Format‑PhoneNumber függvényem a telefonszám három lehetséges részéből (országkód, területi kód, helyi szám) képez telefonszámot. Az országkód és a területi kód alaphelyzetben nem kötelező, de ha már használunk országkódot, akkor a területi kód is kötelező:

function Format-PhoneNumber {

[CmdletBinding(DefaultParameterSetName='nemkötelező')]

param

(

    [Parameter(ParameterSetName='kötelező')]

    $országkód,

    [Parameter(Mandatory=$false,ParameterSetName='nemkötelező')]

    [Parameter(Mandatory=$true,ParameterSetName='kötelező')]

    $területikód,

    [Parameter(Mandatory=$true)]

    $helyiszám

)

    $result = ""

    if($országkód){$result = "(+$országkód-$területikód) "}

    elseif($területikód){$result = "($területikód) "}

    $result += "{0:###-####}" -f $helyiszám

    $result

}

Látható, hogy a $területikód paraméternek két Parameter definíciója is van. Ez lehetséges, ha azok különböző ParameterSetName-hez tartoznak. Az alaphelyzet szerinti ParameterSetName a „nemkötelező”, ez akkor lesz érvényes, ha nem használjuk az országkód paramétert. Ilyenkor a területi kód használata opcionális.

PS C:\> Format-PhoneNumber -helyiszám 1234567

123-4567

PS C:\> Format-PhoneNumber -helyiszám 1234567 -területikód 30

(30) 123-4567

Más a helyzet azonban, ha van országkód. Ha nem adok meg területi kódot, akkor a PowerShell bekéri azt:

PS C:\> Format-PhoneNumber -helyiszám 1234567 -területikód 30 -országkód 36

(+36-30) 123-4567

PS C:\> Format-PhoneNumber -helyiszám 1234567 -országkód 36

 

cmdlet Format-PhoneNumber at command pipeline position 1

Supply values for the following parameters:

területikód: 30

(+36-30) 123-4567



Word To HTML Converter