Metody przetwarzania danych wejściowych poleceń cmdletCmdlet Input Processing Methods

Polecenia cmdlet programu muszą przesłaniać jedną lub więcej metod przetwarzania danych wejściowych opisanych w tym temacie, aby wykonać ich prace.Cmdlets must override one or more of the input processing methods described in this topic to perform their work. Te metody umożliwiają wykonanie operacji przetwarzania wstępnego, przetwarzania danych wejściowych i przetwarzania końcowego przez polecenie cmdlet.These methods allow the cmdlet to perform operations of pre-processing, input processing, and post-processing. Te metody umożliwiają również zatrzymanie przetwarzania poleceń cmdlet.These methods also allow you to stop cmdlet processing. Aby zapoznać się z bardziej szczegółowym przykładem korzystania z tych metod, zobacz samouczek SelectStr.For a more detailed example of how to use these methods, see SelectStr Tutorial.

Operacje przetwarzania wstępnegoPre-Processing Operations

Polecenia cmdlet powinny przesłaniać metodę System. Management. Automation. cmdlet. BeginProcessing , aby dodać wszystkie operacje przetwarzania wstępnego, które są prawidłowe dla wszystkich rekordów, które będą przetwarzane później przez polecenie cmdlet.Cmdlets should override the System.Management.Automation.Cmdlet.BeginProcessing method to add any preprocessing operations that are valid for all the records that will be processed later by the cmdlet. Gdy program PowerShell przetwarza potok poleceń, PowerShell wywołuje tę metodę raz dla każdego wystąpienia polecenia cmdlet w potoku.When PowerShell processes a command pipeline, PowerShell calls this method once for each instance of the cmdlet in the pipeline. Aby uzyskać więcej informacji na temat sposobu, w jaki program PowerShell wywołuje potok poleceń, zobacz cykl życia przetwarzania poleceń cmdlet.For more information about how PowerShell invokes the command pipeline, see Cmdlet Processing Lifecycle.

Poniższy kod przedstawia implementację metody BeginProcessing.The following code shows an implementation of the BeginProcessing method.

protected override void BeginProcessing()
{
  // Replace the WriteObject method with the logic required by your cmdlet.
  WriteObject("This is a test of the BeginProcessing template.");
}

Operacje przetwarzania danych wejściowychInput Processing Operations

Polecenia cmdlet mogą przesłaniać metodę System. Management. Automation. cmdlet. ProcessRecord , aby przetwarzać dane wejściowe wysyłane do polecenia cmdlet.Cmdlets can override the System.Management.Automation.Cmdlet.ProcessRecord method to process the input that is sent to the cmdlet. Gdy program PowerShell przetwarza potok poleceń, PowerShell wywołuje tę metodę dla każdego rekordu wejściowego, który jest przetwarzany przez polecenie cmdlet.When PowerShell processes a command pipeline, PowerShell calls this method for each input record that is processed by the cmdlet. Aby uzyskać więcej informacji na temat sposobu, w jaki program PowerShell wywołuje potok poleceń, zobacz cykl życia przetwarzania poleceń cmdlet.For more information about how PowerShell invokes the command pipeline, see Cmdlet Processing Lifecycle.

Poniższy kod przedstawia implementację metody ProcessRecord.The following code shows an implementation of the ProcessRecord method.

protected override void ProcessRecord()
{
  // Replace the WriteObject method with the logic required by your cmdlet.
  WriteObject("This is a test of the ProcessRecord template.");
}

Operacje po zakończeniu przetwarzaniaPost-Processing Operations

Polecenia cmdlet powinny przesłaniać metodę System. Management. Automation. cmdlet. EndProcessing , aby dodać wszelkie operacje wykonywane po zakończeniu przetwarzania, które są prawidłowe dla wszystkich rekordów przetworzonych przez polecenie cmdlet.Cmdlets should override the System.Management.Automation.Cmdlet.EndProcessing method to add any post-processing operations that are valid for all the records that were processed by the cmdlet. Na przykład polecenie cmdlet może wymagać oczyszczenia zmiennych obiektu po zakończeniu przetwarzania.For example, your cmdlet might have to clean up object variables after it is finished processing.

Gdy program PowerShell przetwarza potok poleceń, PowerShell wywołuje tę metodę raz dla każdego wystąpienia polecenia cmdlet w potoku.When PowerShell processes a command pipeline, PowerShell calls this method once for each instance of the cmdlet in the pipeline. Należy jednak pamiętać, że środowisko uruchomieniowe programu PowerShell nie wywoła metody EndProcessing, jeśli polecenie cmdlet zostało anulowane w połowie przetwarzania danych wejściowych lub w przypadku wystąpienia błędu kończącego w dowolnej części polecenia cmdlet.However, it is important to remember that the PowerShell runtime will not call the EndProcessing method if the cmdlet is canceled midway through its input processing or if a terminating error occurs in any part of the cmdlet. Z tego powodu polecenie cmdlet, które wymaga oczyszczenia obiektu, powinno zaimplementować kompletny wzorzec System. IDisposable , w tym finalizator, aby środowisko uruchomieniowe mogły wywołać metody EndProcessing i System. IDisposable. Dispose na końcu przetwarzania.For this reason, a cmdlet that requires object cleanup should implement the complete System.IDisposable pattern, including a finalizer, so that the runtime can call both the EndProcessing and System.IDisposable.Dispose methods at the end of processing. Aby uzyskać więcej informacji na temat sposobu, w jaki program PowerShell wywołuje potok poleceń, zobacz cykl życia przetwarzania poleceń cmdlet.For more information about how PowerShell invokes the command pipeline, see Cmdlet Processing Lifecycle.

Poniższy kod przedstawia implementację metody EndProcessing.The following code shows an implementation of the EndProcessing method.

protected override void EndProcessing()
{
  // Replace the WriteObject method with the logic required by your cmdlet.
  WriteObject("This is a test of the EndProcessing template.");
}

Zobacz teżSee Also

System. Management. Automation. cmdlet. BeginProcessingSystem.Management.Automation.Cmdlet.BeginProcessing

System. Management. Automation. cmdlet. ProcessRecordSystem.Management.Automation.Cmdlet.ProcessRecord

System. Management. Automation. cmdlet. EndProcessingSystem.Management.Automation.Cmdlet.EndProcessing

SelectStr — samouczekSelectStr Tutorial

System. IDisposableSystem.IDisposable

Zestaw SDK powłoki środowiska Windows PowerShellWindows PowerShell Shell SDK