Parancsmag-paraméterek típusaiTypes of Cmdlet Parameters

Ez a témakör a parancsmagokban deklarálható paraméterek különböző típusait ismerteti.This topic describes the different types of parameters that you can declare in cmdlets. A parancsmag paraméterei lehetnek pozicionális, elnevezett, kötelező, opcionális vagy kapcsoló paraméterek.Cmdlet parameters can be positional, named, required, optional, or switch parameters.

Pozícionálás és elnevezett paraméterekPositional and Named Parameters

Az összes parancsmag-paraméter neve vagy pozíciós paraméter.All cmdlet parameters are either named or positional parameters. Elnevezett paraméter esetén a parancsmag meghívásakor a paraméter nevét és az argumentumot kell megadnia.A named parameter requires that you type the parameter name and argument when calling the cmdlet. A pozíciós paraméter csak az argumentumok relatív sorrendben történő beírását igényli.A positional parameter requires only that you type the arguments in relative order. A rendszer ezután leképezi az első név nélküli argumentumot az első pozíciós paraméterre.The system then maps the first unnamed argument to the first positional parameter. A rendszer leképezi a második név nélküli argumentumot a második nem nevezett paraméterre, és így tovább.The system maps the second unnamed argument to the second unnamed parameter, and so on. Alapértelmezés szerint az összes parancsmag paraméter neve paraméterek.By default, all cmdlet parameters are named parameters.

Elnevezett paraméter definiálásához hagyja ki a Position kulcsszót a paraméter attribútum deklarációjában, ahogy az a következő paraméter deklarációjában látható.To define a named parameter, omit the Position keyword in the Parameter attribute declaration, as shown in the following parameter declaration.

[Parameter(ValueFromPipeline=true)]
public string UserName
{
  get { return userName; }
  set { userName = value; }
}
private string userName;

A pozíciós paraméterek definiálásához adja hozzá a Position kulcsszót a paraméter attribútum deklarációjában, majd adjon meg egy pozíciót.To define a positional parameter, add the Position keyword in the Parameter attribute declaration, and then specify a position. A következő példában a paraméter a UserName 0 pozícióval rendelkező pozíciós paraméterként van deklarálva.In the following sample, the UserName parameter is declared as a positional parameter with position 0. Ez azt jelenti, hogy a hívás első argumentuma automatikusan ehhez a paraméterhez lesz kötve.This means that the first argument of the call will be automatically bound to this parameter.

[Parameter(Position = 0)]
public string UserName
{
  get { return userName; }
  set { userName = value; }
}
private string userName;

Megjegyzés

A jó parancsmag kialakítása azt javasolja, hogy a leggyakrabban használt paraméterek legyenek pozicionális paraméterekként deklarálva, így a felhasználónak nem kell megadnia a paraméter nevét a parancsmag futtatásakor.Good cmdlet design recommends that the most-used parameters be declared as positional parameters so that the user does not have to enter the parameter name when the cmdlet is run.

A pozícionálás és elnevezett paraméterek egyetlen argumentumot vagy több, vesszővel elválasztott argumentumot fogadnak el.Positional and named parameters accept single arguments or multiple arguments separated by commas. Több argumentum csak akkor engedélyezett, ha a paraméter olyan gyűjteményt fogad, mint például a karakterláncok tömbje.Multiple arguments are allowed only if the parameter accepts a collection such as an array of strings. Ugyanabban a parancsmagban a pozíciós és a nevesített paramétereket is keverheti.You may mix positional and named parameters in the same cmdlet. Ebben az esetben a rendszer először az elnevezett argumentumokat kéri le, majd megkísérli leképezni a fennmaradó nem nevezett argumentumokat a pozíciós paraméterekre.In this case, the system retrieves the named arguments first, and then attempts to map the remaining unnamed arguments to the positional parameters.

Az alábbi parancsok azt mutatják be, hogyan adhat meg egyetlen és több argumentumot a Get-Command parancsmag paramétereinek.The following commands show the different ways in which you can specify single and multiple arguments for the parameters of the Get-Command cmdlet. Figyelje meg, hogy az utolsó két mintában nem kell megadni a nevet , mert a Name paraméter a pozíciós paraméterként van definiálva.Notice that in the last two samples, -name does not need to be specified because the Name parameter is defined as a positional parameter.

Get-Command -Name get-service
Get-Command -Name get-service,set-service
Get-Command get-service
Get-Command get-service,set-service

Kötelező és választható paraméterekMandatory and Optional Parameters

A parancsmag paramétereit kötelezőként vagy választható paraméterekként is megadhatja.You can also define cmdlet parameters as mandatory or optional parameters. (Kötelező paramétert kell megadni ahhoz, hogy a Windows PowerShell-futtatókörnyezet meghívja a parancsmagot.) Alapértelmezés szerint a paraméterek a választható módon vannak meghatározva.(A mandatory parameter must be specified before the Windows PowerShell runtime invokes the cmdlet.) By default, parameters are defined as optional.

Kötelező paraméter megadásához adja hozzá a Mandatory kulcsszót a paraméter attribútum deklarációjában, és állítsa be a értékre, true ahogy az a következő paraméter deklarációjában látható.To define a mandatory parameter, add the Mandatory keyword in the Parameter attribute declaration, and set it to true, as shown in the following parameter declaration.

[Parameter(Position = 0, Mandatory = true)]
public string UserName
{
  get { return userName; }
  set { userName = value; }
}
private string userName;

Ha nem kötelező paramétert szeretne megadni, hagyja ki a Mandatory kulcsszót a paraméter attribútum deklarációjában, ahogy az a következő paraméter deklarációjában látható.To define an optional parameter, omit the Mandatory keyword in the Parameter attribute declaration, as shown in the following parameter declaration.

[Parameter(Position = 0)]
public string UserName
{
  get { return userName; }
  set { userName = value; }
}
private string userName;

Paraméterek váltásaSwitch Parameters

A Windows PowerShell egy System. Management. Automation. SwitchParameter típust biztosít, amely lehetővé teszi egy olyan paraméter meghatározását, amelynek értéke automatikusan be lesz állítva, false Ha a parancsmag hívásakor a paraméter nincs megadva.Windows PowerShell provides a System.Management.Automation.SwitchParameter type that allows you to define a parameter whose value is automatically set to false if the parameter is not specified when the cmdlet is called. Ha lehetséges, használja a kapcsoló paramétereit a logikai paraméterek helyett.Whenever possible, use switch parameters in place of Boolean parameters.

Vegye figyelembe a következő mintát.Consider the following sample. Alapértelmezés szerint számos Windows PowerShell-parancsmag nem ad át kimeneti objektumot a folyamaton.By default, several Windows PowerShell cmdlets do not pass an output object down the pipeline. Ezek a parancsmagok azonban egy PassThru switch paraméterrel rendelkeznek, amely felülbírálja az alapértelmezett viselkedést.However, these cmdlets have a PassThru switch parameter that overrides the default behavior. Ha a PassThru paraméter meg van adva a parancsmagok meghívásakor, a parancsmag kimeneti objektumot ad vissza a folyamatnak.If the PassThru parameter is specified when these cmdlets are called, the cmdlet returns an output object to the pipeline.

Ha a paramétert úgy kell megadnia, hogy alapértelmezett értéke legyen true , ha a paraméter nincs megadva a hívásban, érdemes lehet megfordítani a paraméter értelmét.If you need the parameter to have a default value of true when the parameter is not specified in the call, consider reversing the sense of the parameter. Ha például a paraméter attribútumát nem a logikai értékre állítja be true , deklarálja a tulajdonságot System. Management. Automation. SwitchParameter típusként, majd állítsa be a paraméter alapértelmezett értékét a következőre: false .For sample, instead of setting the parameter attribute to a Boolean value of true, declare the property as the System.Management.Automation.SwitchParameter type, and then set the default value of the parameter to false.

Egy switch paraméter definiálásához deklarálja a tulajdonságot System. Management. Automation. SwitchParameter típusként, ahogy az a következő példában látható.To define a switch parameter, declare the property as the System.Management.Automation.SwitchParameter type, as shown in the following sample.

[Parameter(Position = 1)]
public SwitchParameter GoodBye
{
  get { return goodbye; }
  set { goodbye = value; }
}
private bool goodbye;

Ha azt szeretné, hogy a parancsmag a megadott paramétert használja, az alábbi struktúrát kell használnia a bemeneti feldolgozási módszerek egyikén belül.To make the cmdlet act on the parameter when it is specified, use the following structure within one of the input processing methods.

protected override void ProcessRecord()
{
  WriteObject("Switch parameter test: " + userName + ".");
  if(goodbye)
  {
    WriteObject(" Goodbye!");
  }
} // End ProcessRecord

Lásd még:See Also

Windows PowerShell-parancsmag írásaWriting a Windows PowerShell Cmdlet