Parancsmag-paraméterek típusai
Ez a témakör a parancsmagok által deklarálható különböző paramétertípusokat ismerteti. A parancsmagparaméterek pozíció, név, kötelező, választható vagy kapcsolóparaméterek is lehetek.
Pozíció és elnevezett paraméterek
Minden parancsmag-paraméter neves vagy pozícióparaméter. A nevestűs paraméterhez a paraméter nevét és argumentumát kell begépelni a parancsmag hívatakor. A pozícióparaméterhez csak relatív sorrendben kell begépelni az argumentumokat. A rendszer ezután leképezi az első név nélküli argumentumot az első pozícióparaméterre. A rendszer leképezi a második névtelen argumentumot a második, név nélküli paraméterre, és így tovább. Alapértelmezés szerint minden parancsmag-paraméter neve parameters.
Elnevezett paraméter definiálásakor ne adja meg a kulcsszót a Paraméterattribútum-deklarációban, ahogy az a Position
következő paraméterdeklarációban látható.
[Parameter(ValueFromPipeline=true)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
Pozícióparaméter meghatározásához adja hozzá a kulcsszót a Paraméter attribútumdeklarációhoz, Position
majd adjon meg egy pozíciót. A következő mintában a paraméter pozícióparaméterként van UserName
deklarálva, 0 pozícióval. Ez azt jelenti, hogy a hívás első argumentuma automatikusan ehhez a paraméterhez lesz kötve.
[Parameter(Position = 0)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
Megjegyzés
A parancsmagok jó kialakítása azt javasolja, hogy a leggyakrabban használt paramétereket pozícióparaméterekként deklarálják, így a felhasználónak nem kell megadnia a paraméter nevét a parancsmag futtatásakor.
A pozíciós és elnevezett paraméterek egyetlen vagy több, vesszővel elválasztott argumentumot fogadnak el. Több argumentum használata csak akkor engedélyezett, ha a paraméter elfogad egy gyűjteményt, például egy sztringtömböt. Pozíciós és elnevezett paramétereket is keverhet ugyanabban a parancsmagban. Ebben az esetben a rendszer először lekéri a megnevezett argumentumokat, majd megkísérli leképezni a fennmaradó név nélküli argumentumokat a pozícióparaméterekkel.
Az alábbi parancsok a parancsmag paramétereinek egy és több argumentum megadásának különböző Get-Command
módjait mutatják be. Figyelje meg, hogy az utolsó két mintában a -name paramétert nem kell megadni, mert a paraméter pozícióparaméterként Name
van definiálva.
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éterek
A parancsmag-paraméterek kötelező vagy választható paraméterekként is definiálhatóak. (Kötelező paramétert kell megadni, mielőtt a Windows PowerShell a runtime meghívja a parancsmagot.) Alapértelmezés szerint a paraméterek nem kötelezőként vannak definiálva.
Kötelező paraméter meghatározásához adja hozzá a kulcsszót a Paraméterattribútum-deklarációhoz, és állítsa be a következő paraméterdeklarációban Mandatory
true
látható módon.
[Parameter(Position = 0, Mandatory = true)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
Nem kötelező paraméter definiálása esetén az alábbi paraméterdeklarációban látható módon ne adja meg a kulcsszót a Paraméter Mandatory
attribútumdeklarációban.
[Parameter(Position = 0)]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
Kapcsolóparaméterek
Windows PowerShell olyan System.Management.Automation.SwitchParameter típust biztosít, amely lehetővé teszi egy olyan paraméter definiálása, amelynek az értéke automatikusan értékre van állítva, ha a paraméter nincs megadva a parancsmag false
hívatásakor. Amikor csak lehetséges, használjon kapcsolóparamétereket logikai paraméterek helyére.
Tekintse meg az alábbi mintát. Alapértelmezés szerint számos Windows PowerShell parancsmag nem ad át kimeneti objektumot a folyamatnak. Ezek a parancsmagok azonban egy kapcsolóparaméterrel felülbírálják PassThru
az alapértelmezett viselkedést. Ha a paraméter meg van adva a parancsmagok hívatásakor, a parancsmag egy kimeneti objektumot ad vissza PassThru
a folyamatnak.
Ha arra van szüksége, hogy a paraméter alapértelmezett értéke legyen, amikor a paraméter nincs megadva a hívásban, fontolja meg a paraméter true
érzékeltének megfordítása. A példában a paraméterattribútum logikai értékre való beállítása helyett deklaráljuk a tulajdonságot true
System.Management.Automation.SwitchParameter típusként, majd állítsa a paraméter alapértelmezett értékét false
értékre.
A kapcsolóparaméter meghatározásához deklarálhatja a tulajdonságot System.Management.Automation.SwitchParameter típusként az alábbi mintában látható módon.
[Parameter(Position = 1)]
public SwitchParameter GoodBye
{
get { return goodbye; }
set { goodbye = value; }
}
private bool goodbye;
Ahhoz, hogy a parancsmag a paraméter megadásakor is használható legyen, használja a következő struktúrát az egyik bemeneti feldolgozási módszerben.
protected override void ProcessRecord()
{
WriteObject("Switch parameter test: " + userName + ".");
if(goodbye)
{
WriteObject(" Goodbye!");
}
} // End ProcessRecord
Lásd még:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: