Aliasok, helyettesítő bővítők és súgó hozzáadása a parancsmag-paraméterekhezAdding Aliases, Wildcard Expansion, and Help to Cmdlet Parameters

Ez a szakasz azt írja le, hogyan adhatók hozzá aliasok, helyettesítő karakterek kibővítése és Súgó üzenetei a stop-proc parancsmag paramétereinek (lásd: a rendszer módosítására szolgáló parancsmag létrehozása).This section describes how to add aliases, wildcard expansion, and Help messages to the parameters of the Stop-Proc cmdlet (described in Creating a Cmdlet that Modifies the System).

Ez a stop-proc parancsmag megkísérli leállítani a Get-proc parancsmaggal lekérdezett folyamatokat (az első parancsmag létrehozásacímű témakörben leírtak szerint).This Stop-Proc cmdlet attempts to stop processes that are retrieved using the Get-Proc cmdlet (described in Creating Your First Cmdlet).

A parancsmag meghatározásaDefining the Cmdlet

A parancsmag létrehozásának első lépése mindig a parancsmag elnevezése, és a parancsmagot implementáló .NET-osztály deklarálása.The first step in cmdlet creation is always naming the cmdlet and declaring the .NET class that implements the cmdlet. Mivel a rendszer módosításához parancsmagot írunk, azt ennek megfelelően kell megnevezni.Because you are writing a cmdlet to change the system, it should be named accordingly. Mivel ez a parancsmag leállítja a rendszerfolyamatokat, a "Leállítás" műveletet használja, amelyet a System. Management. Automation. Verbslifecycle osztály definiál, és a "proc" kifejezéssel jelzi a folyamatot.Because this cmdlet stops system processes, it uses the verb "Stop", defined by the System.Management.Automation.Verbslifecycle class, with the noun "Proc" to indicate process. További információ a jóváhagyott parancsmag-műveletekről: parancsmag-műveletek nevei.For more information about approved cmdlet verbs, see Cmdlet Verb Names.

A következő kód a stop-proc parancsmag osztályának definíciója.The following code is the class definition for this Stop-Proc cmdlet.

[Cmdlet(VerbsLifecycle.Stop, "proc",
        SupportsShouldProcess = true)]
public class StopProcCommand : Cmdlet

Paraméterek definiálása a rendszer módosításáhozDefining Parameters for System Modification

A parancsmagnak meg kell határoznia a rendszermódosításokat és a felhasználói visszajelzéseket támogató paramétereket.Your cmdlet needs to define parameters that support system modifications and user feedback. A parancsmagnak meg kell határoznia egy Name paramétert vagy azzal egyenértékűt, hogy a parancsmag valamilyen azonosító alapján módosíthassa a rendszert.The cmdlet should define a Name parameter or equivalent so that the cmdlet will be able to modify the system by some sort of identifier. Emellett a parancsmagnak meg kell határoznia a Force és a PassThru paramétereket.In addition, the cmdlet should define the Force and PassThru parameters. További információ ezekről a paraméterekről: parancsmag létrehozása, amely módosítja a rendszerét.For more information about these parameters, see Creating a Cmdlet that Modifies the System.

Paraméter aliasának meghatározásaDefining a Parameter Alias

A paraméter alias lehet egy alternatív név, vagy egy pontosan meghatározott 1 betűs vagy 2 betűs rövid név a parancsmag paraméterhez.A parameter alias can be an alternate name or a well-defined 1-letter or 2-letter short name for a cmdlet parameter. Mindkét esetben az aliasok használatának célja, hogy leegyszerűsítse a felhasználói bejegyzést a parancssorból.In both cases, the goal of using aliases is to simplify user entry from the command line. A Windows PowerShell paraméter-aliasokat támogat a System. Management. Automation. Aliasattribute attribútumon keresztül, amely a deklaráció szintaxisát használja [alias ()].Windows PowerShell supports parameter aliases through the System.Management.Automation.Aliasattribute attribute, which uses the declaration syntax [Alias()].

A következő kód azt mutatja be, hogyan kerül egy alias a Name paraméterhez.The following code shows how an alias is added to the Name parameter.

/// <summary>
/// Specify the mandatory Name parameter used to identify the
/// processes to be stopped.
/// </summary>
[Parameter(
           Position = 0,
           Mandatory = true,
           ValueFromPipeline = true,
           ValueFromPipelineByPropertyName = true,
           HelpMessage = "The name of one or more processes to stop. Wildcards are permitted."
)]
[Alias("ProcessName")]
public string[] Name
{
  get { return processNames; }
  set { processNames = value; }
}
private string[] processNames;

A System. Management. Automation. Aliasattribute attribútum használata mellett a Windows PowerShell-futtatókörnyezet részleges nevet hajt végre, még akkor is, ha nincsenek megadva aliasok.In addition to using the System.Management.Automation.Aliasattribute attribute, the Windows PowerShell runtime performs partial name matching, even if no aliases are specified. Ha például a parancsmag paraméterrel rendelkezik, FileName és az egyetlen paraméter, amely a-val kezdődik F , a felhasználó megadhatja a (z),,,, Filename Filenam vagy a File Fi F bejegyzést a FileName paraméterként.For example, if your cmdlet has a FileName parameter and that is the only parameter that starts with F, the user could enter Filename, Filenam, File, Fi, or F and still recognize the entry as the FileName parameter.

A paraméterek súgójának létrehozásaCreating Help for Parameters

A Windows PowerShell segítségével segítséget hozhat létre a parancsmag paramétereinek létrehozásához.Windows PowerShell allows you to create Help for cmdlet parameters. Ezt minden, a rendszer módosítására és a felhasználói visszajelzésre használt paraméter esetében tegye meg.Do this for any parameter used for system modification and user feedback. A segítség támogatásához minden paraméternél megadhatja az HelpMessage attribútum kulcsszót a System. Management. Automation. Parameterattribute attribútum deklarációjában.For each parameter to support Help, you can set the HelpMessage attribute keyword in the System.Management.Automation.Parameterattribute attribute declaration. Ez a kulcsszó határozza meg a felhasználónak megjelenítendő szöveget a paraméter használatával kapcsolatos segítségért.This keyword defines the text to display to the user for assistance in using the parameter. A kulcsszót beállíthatja HelpMessageBaseName úgy is, hogy meghatározza az üzenethez használandó erőforrás alapnevét.You can also set the HelpMessageBaseName keyword to identify the base name of a resource to use for the message. Ha beállítja ezt a kulcsszót, a kulcsszót is be kell állítania HelpMessageResourceId az erőforrás-azonosító megadásához.If you set this keyword, you must also set the HelpMessageResourceId keyword to specify the resource identifier.

A stop-proc parancsmag következő kódja határozza meg a HelpMessage paraméter attribútumának kulcsszavait Name .The following code from this Stop-Proc cmdlet defines the HelpMessage attribute keyword for the Name parameter.

/// <summary>
/// Specify the mandatory Name parameter used to identify the
/// processes to be stopped.
/// </summary>
[Parameter(
           Position = 0,
           Mandatory = true,
           ValueFromPipeline = true,
           ValueFromPipelineByPropertyName = true,
           HelpMessage = "The name of one or more processes to stop. Wildcards are permitted."
)]

Egy bemeneti feldolgozási módszer felülbírálásaOverriding an Input Processing Method

A parancsmagnak felül kell bírálnia egy bemeneti feldolgozási módszert, amely leggyakrabban a System. Management. Automation. parancsmag. ProcessRecordlesz.Your cmdlet must override an input processing method, most often this will be System.Management.Automation.Cmdlet.ProcessRecord. A rendszer módosításakor a parancsmagnak meg kell hívnia a System. Management. Automation. parancsmag. ShouldProcess és System. Management. Automation. parancsmag. ShouldContinue metódust, amely lehetővé teszi, hogy a felhasználó visszajelzést nyújtson a módosítás előtt.When modifying the system, the cmdlet should call the System.Management.Automation.Cmdlet.ShouldProcess and System.Management.Automation.Cmdlet.ShouldContinue methods to allow the user to provide feedback before a change is made. További információ ezekről a módszerekről: parancsmag létrehozása, amely módosítja a rendszerét.For more information about these methods, see Creating a Cmdlet that Modifies the System.

Helyettesítő karakterek kiterjesztésének támogatásaSupporting Wildcard Expansion

Több objektum kijelölésének engedélyezéséhez a parancsmag használhatja a System. Management. Automation. Wildcardpattern és a System. Management. Automation. Wildcardoptions osztályokat a paraméter bemenetének helyettesítő karakteres kiterjesztésének biztosításához.To allow the selection of multiple objects, your cmdlet can use the System.Management.Automation.Wildcardpattern and System.Management.Automation.Wildcardoptions classes to provide wildcard expansion support for parameter input. Példák helyettesítő mintákra: LSA *, * . txt és [a-c] * .Examples of wildcard patterns are lsa*, *.txt, and [a-c]*. Ha a minta olyan karaktert tartalmaz, amelyet szó szerint kell használni, használja a back-quote karaktert (') Escape-karakterként.Use the back-quote character (`) as an escape character when the pattern contains a character that should be used literally.

A fájl-és elérésiút-nevek helyettesítő karakteres kiterjesztései olyan gyakori forgatókönyvek, amelyekben a parancsmag engedélyezheti az elérési utak bemenetének támogatását, ha több objektum kiválasztására van szükség.Wildcard expansions of file and path names are examples of common scenarios where the cmdlet may want to allow support for path inputs when the selection of multiple objects is required. Gyakori eset a fájlrendszerben, ahol a felhasználó az aktuális mappában található összes fájlt meg szeretné tekinteni.A common case is in the file system, where a user wants to see all files residing in the current folder.

Egyéni helyettesítő karakternek kell lennie, és csak ritkán kell végrehajtania a megvalósítást.You should need a customized wildcard pattern matching implementation only rarely. Ebben az esetben a parancsmagnak támogatnia kell a teljes POSIX 1003,2, 3,13 specifikációt a helyettesítő karakteres bővítéshez vagy a következő egyszerűsített részhalmazhoz:In this case, your cmdlet should support either the full POSIX 1003.2, 3.13 specification for wildcard expansion or the following simplified subset:

  • Kérdőjel (?).Question mark (?). A megadott helyen található bármilyen karakternek felel meg.Matches any character at the specified location.

  • Csillag ( * ).Asterisk (*). Nulla vagy több karakternek felel meg a megadott helytől kezdődően.Matches zero or more characters starting at the specified location.

  • Nyitó szögletes zárójel ([).Open bracket ([). Bevezet egy mintázatos zárójel kifejezést, amely tartalmazhat karaktereket vagy különböző karaktereket.Introduces a pattern bracket expression that can contain characters or a range of characters. Ha tartományra van szükség, a rendszer kötőjelet (-) használ a tartomány jelzéséhez.If a range is required, a hyphen (-) is used to indicate the range.

  • Záró szögletes zárójel (])Close bracket (]). Egy mintázat zárójel kifejezésének vége.Ends a pattern bracket expression.

  • Visszatérési idézet escape-karaktere ().Back-quote escape character (`). Azt jelzi, hogy a következő karakternek szó szerint kell szerepelnie.Indicates that the next character should be taken literally. Vegye figyelembe, hogy amikor a parancssorból megadja a visszatérési idézőjel karaktert (nem a programozott módon való megadását), a háttérbeli Escape-karaktert kétszer kell megadni.Be aware that when specifying the back-quote character from the command line (as opposed to specifying it programmatically), the back-quote escape character must be specified twice.

Megjegyzés

További információ a helyettesítő karakteres mintákról: a helyettesítő karakterek támogatása a parancsmag paraméterei között.For more information about wildcard patterns, see Supporting Wildcards in Cmdlet Parameters.

A következő kód bemutatja, hogyan lehet helyettesítő beállításokat beállítani, és definiálni a parancsmag paraméterének feloldásához használt helyettesítő karaktert Name .The following code shows how to set wildcard options and define the wildcard pattern used for resolving the Name parameter for this cmdlet.

WildcardOptions options = WildcardOptions.IgnoreCase |
                          WildcardOptions.Compiled;
WildcardPattern wildcard = new WildcardPattern(name,options);

A következő kód bemutatja, hogyan tesztelheti, hogy a folyamat neve megegyezik-e a definiált helyettesítő karakterrel.The following code shows how to test whether the process name matches the defined wildcard pattern. Figyelje meg, hogy ebben az esetben, ha a folyamat neve nem felel meg a mintának, a parancsmag továbbra is beolvassa a következő folyamat nevét.Notice that, in this case, if the process name does not match the pattern, the cmdlet continues on to get the next process name.

if (!wildcard.IsMatch(processName))
{
  continue;
}

MintakódCode Sample

A teljes C# mintakód: StopProcessSample03 minta.For the complete C# sample code, see StopProcessSample03 Sample.

Objektumtípusok és formázás definiálásaDefine Object Types and Formatting

A Windows PowerShell a parancsmagok közötti adatokat .net-objektumokkal továbbítja.Windows PowerShell passes information between cmdlets using .Net objects. Ennek következtében előfordulhat, hogy a parancsmagnak meg kell határoznia a saját típusát, vagy előfordulhat, hogy a parancsmagnak egy másik parancsmag által biztosított meglévő típust kell kiterjesztenie.Consequently, a cmdlet may need to define its own type, or the cmdlet may need to extend an existing type provided by another cmdlet. Az új típusok definiálásával vagy a meglévő típusok kiterjesztésével kapcsolatos további információkért lásd: az Objektumtípusok és a formázás kiterjesztése.For more information about defining new types or extending existing types, see Extending Object Types and Formatting.

A parancsmag felépítéseBuilding the Cmdlet

A parancsmag implementálása után a Windows PowerShell beépülő modullal kell regisztrálni a Windows PowerShellben.After implementing a cmdlet, it must be registered with Windows PowerShell through a Windows PowerShell snap-in. A parancsmagok regisztrálásával kapcsolatos további információkért lásd: parancsmagok, szolgáltatók és gazdagép-alkalmazások regisztrálása.For more information about registering cmdlets, see How to Register Cmdlets, Providers, and Host Applications.

A parancsmag teszteléseTesting the Cmdlet

Ha a parancsmag regisztrálva van a Windows PowerShellben, tesztelheti azt a parancssorban futtatva.When your cmdlet has been registered with Windows PowerShell, you can test it by running it on the command line. Tesztelje a "Stop-proc" parancsmagot.Let's test the sample Stop-Proc cmdlet. További információ a parancsmagok parancssorból történő használatáról: első lépések a Windows PowerShellhasználatával.For more information about using cmdlets from the command line, see the Getting Started with Windows PowerShell.

  • Indítsa el a Windows PowerShellt, és a stop-proc paranccsal állítsa le a folyamatot a paraméter ProcessName aliasával Name .Start Windows PowerShell and use Stop-Proc to stop a process using the ProcessName alias for the Name parameter.

    PS> stop-proc -ProcessName notepad
    

    A következő kimenet jelenik meg.The following output appears.

    Confirm
    Are you sure you want to perform this action?
    Performing operation "stop-proc" on Target "notepad (3496)".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
    
  • Hajtsa végre a következő bejegyzést a parancssorban.Make the following entry on the command line. Mivel a name paraméter megadása kötelező, a rendszer kéri a nevet.Because the Name parameter is mandatory, you are prompted for it. "!?" MegadásaEntering "!?" Megjeleníti a paraméterhez társított súgószöveg szövegét.brings up the help text associated with the parameter.

    PS> stop-proc
    

    A következő kimenet jelenik meg.The following output appears.

    Cmdlet stop-proc at command pipeline position 1
    Supply values for the following parameters:
    (Type !? for Help.)
    Name[0]: !?
    The name of one or more processes to stop. Wildcards are permitted.
    Name[0]: notepad
    
  • Most végezze el a következő bejegyzést az összes olyan folyamat leállításához, amely megfelel a "* Megjegyzés" helyettesítő mintának * .Now make the following entry to stop all processes that match the wildcard pattern "*note*". A rendszer felszólítja, mielőtt leállítja az összes olyan folyamatot, amely megfelel a mintának.You are prompted before stopping each process that matches the pattern.

    PS> stop-proc -Name *note*
    

    A következő kimenet jelenik meg.The following output appears.

    Confirm
    Are you sure you want to perform this action?
    Performing operation "stop-proc" on Target "notepad (1112)".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
    

    A következő kimenet jelenik meg.The following output appears.

    Confirm
    Are you sure you want to perform this action?
    Performing operation "stop-proc" on Target "ONENOTEM (3712)".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): N
    

    A következő kimenet jelenik meg.The following output appears.

    Confirm
    Are you sure you want to perform this action?
    Performing operation "stop-proc" on Target "ONENOTE (3592)".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): N
    

Lásd még:See Also

A rendszer módosítását módosító parancsmag létrehozásaCreate a Cmdlet that Modifies the System

Windows PowerShell-parancsmag létrehozásaHow to Create a Windows PowerShell Cmdlet

Objektumok típusának és formázásának kiterjesztéseExtending Object Types and Formatting

Parancsmagok, szolgáltatók és gazdagép-alkalmazások regisztrálásaHow to Register Cmdlets, Providers, and Host Applications

Támogató helyettesítő karakterek a parancsmag paraméterei közöttSupporting Wildcards in Cmdlet Parameters

Windows PowerShell SDKWindows PowerShell SDK