Parancsmag-paraméterkészletek
A PowerShell paraméterkészletekkel teszi lehetővé, hogy egyetlen parancsmagot írjon, amely különböző műveleteket képes különböző forgatókönyvek esetén. A paraméterkészletekkel különböző paramétereket tesz elérhetővé a felhasználó számára. És különböző információkat ad vissza a felhasználó által megadott paraméterek alapján.
Példák paraméterkészletre
A PowerShell-parancsmag például különböző információkat ad vissza attól függően, hogy a felhasználó megadja-e a List vagy Get-EventLog
a LogName paramétert. Ha a List paraméter meg van adva, a parancsmag magukról a naplófájlokról ad vissza információkat, az eseményinformációkat azonban nem. Ha a LogName paraméter meg van adva, a parancsmag egy adott eseménynapló eseményeire vonatkozó információkat ad vissza. A List és a LogName paraméter két különálló paraméterkészletet azonosít.
Egyedi paraméter
Minden paraméterkészletnek egyedi paraméterrel kell lennie, hogy a PowerShell-futtatás elérhetővé tegye a megfelelő paraméterkészletet. Ha lehetséges, az egyedi paraméternek kötelező paraméternek kell lennie. Ha egy paraméter kötelező, a felhasználónak meg kell adnia a paramétert, és a PowerShell-futtatás ezt a paramétert használja a paraméterkészlet azonosításához. Az egyedi paraméter nem lehet kötelező, ha a parancsmagot úgy tervezték, hogy paraméterek megadása nélkül fusson.
Több paraméterkészlet
Az alábbi ábrán a bal oldali oszlopban három érvényes paraméterkészlet látható. Az A paraméter az első paraméterkészlet egyedi, a B paraméter a második paraméterkészleten, a C paraméter pedig a harmadik paraméterkészleten egyedi. A jobb oldali oszlopban a paraméterkészletek nem rendelkezik egyedi paraméterrel.
Paraméterkészlet-követelmények
Az alábbi követelmények minden paraméterkészletre vonatkoznak.
Minden paraméterkészletnek legalább egy egyedi paraméterrel kell lennie. Ha lehetséges, tegye kötelezővé ezt a paramétert.
Egy több pozícióparamétert tartalmazó paraméterkészletnek minden paraméterhez egyedi pozíciót kell meghatároznia. Két pozícióparaméter nem adhatja meg ugyanazt a pozíciót.
Egy készletben csak egy paraméter deklarálhatja a
ValueFromPipeline
kulcsszóttrue
értékkel. Több paraméter is definiálhatjaValueFromPipelineByPropertyName
a kulcsszót értékkel.true
Ha nincs megadva paraméterkészlet egy paraméterhez, a paraméter az összes paraméterkészlethez tartozik.
Megjegyzés
Parancsmagok vagy függvények legfeljebb 32 paraméterkészletet korlátoznak.
Alapértelmezett paraméterkészletek
Több paraméterkészlet definiálása esetén a Parancsmag attribútum DefaultParameterSetName
kulcsszóval megadhatja az alapértelmezett paraméterkészletet. A PowerShell az alapértelmezett paraméterkészletet használja, ha nem tudja meghatározni a paraméterkészletet a parancs által megadott információk alapján. A Parancsmag attribútummal kapcsolatos további információkért lásd: Parancsmag-attribútumdeklaráció.
Paraméterkészletek deklarása
Paraméterkészlet létrehozásához meg kell adnia a kulcsszót, amikor deklarálta a Paraméter attribútumot a paraméterkészletben ParameterSetName
minden paraméterhez. A több paraméterkészlethez tartozó paraméterekhez minden paraméterkészlethez adjon hozzá egy Paraméter attribútumot. Ez az attribútum lehetővé teszi, hogy a paramétert minden paraméterkészlethez másként definiálja. Például kötelezőként definiálhat egy paramétert az egyik készletben, és nem kötelezőként egy másikban. Azonban minden paraméterkészletnek egy egyedi paramétert kell tartalmaznia. További információ: Paraméterattribútum-deklaráció.
A következő példában a UserName paraméter a paraméterkészlet egyedi paramétere, a ComputerName paraméter pedig a paraméterkészlet Test01
egyedi Test02
paramétere. A SharedParam paraméter mindkét készlethez tartozik, és kötelező a paraméterkészlethez, de nem kötelező Test01
a Test02
paraméterkészlethez.
[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test01")]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test02")]
public string ComputerName
{
get { return computerName; }
set { computerName = value; }
}
private string computerName;
[Parameter(Mandatory= true, ParameterSetName = "Test01")]
[Parameter(ParameterSetName = "Test02")]
public string SharedParam
{
get { return sharedParam; }
set { sharedParam = value; }
}
private string sharedParam;
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: