Metody przetwarzania danych wejściowych poleceń cmdlet

Polecenia cmdlet muszą zastąpić jedną lub więcej metod przetwarzania danych wejściowych opisanych w tym temacie, aby wykonać swoją pracę. Te metody umożliwiają polecenie cmdlet wykonywanie operacji przetwarzania wstępnego, przetwarzania wejściowego i przetwarzania post. Te metody umożliwiają również zatrzymanie przetwarzania polecenia cmdlet. Aby uzyskać bardziej szczegółowy przykład użycia tych metod, zobacz SelectStr Tutorial (Samouczek dotyczący funkcji SelectStr).

Operacje przetwarzania wstępnego

Polecenia cmdlet powinny zastąpić metodę System.Management.Automation.Cmdlet.BeginProcessing, aby dodać wszystkie operacje przetwarzania wstępnego, które są prawidłowe dla wszystkich rekordów, które zostaną później przetworzone przez polecenie cmdlet. Gdy program PowerShell przetwarza potok poleceń, program PowerShell wywołuje tę metodę raz dla każdego wystąpienia polecenia cmdlet w potoku. Aby uzyskać więcej informacji na temat wywoływania potoku poleceń przez program PowerShell, zobacz Cykl życia przetwarzania poleceń cmdlet.

Poniższy kod przedstawia implementację metody BeginProcessing.

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ściowych

Polecenia cmdlet mogą przesłonić metodę System.Management.Automation.Cmdlet.ProcessRecord w celu przetwarzania danych wejściowych wysyłanych do polecenia cmdlet. Gdy program PowerShell przetwarza potok poleceń, program PowerShell wywołuje tę metodę dla każdego rekordu wejściowego przetwarzanego przez polecenie cmdlet . Aby uzyskać więcej informacji na temat wywoływania potoku poleceń przez program PowerShell, zobacz Cykl życia przetwarzania poleceń cmdlet.

Poniższy kod przedstawia implementację metody ProcessRecord.

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 przetwarzania po przetwarzaniu

Polecenia cmdlet powinny zastąpić metodę System.Management.Automation.Cmdlet.EndProcessing, aby dodać wszystkie operacje przetwarzania końcowego, które są prawidłowe dla wszystkich rekordów przetworzonych przez polecenie cmdlet . Na przykład polecenie cmdlet może wymagać oczyszczenia zmiennych obiektów po zakończeniu przetwarzania.

Gdy program PowerShell przetwarza potok poleceń, program PowerShell wywołuje tę metodę raz dla każdego wystąpienia polecenia cmdlet w potoku. Należy jednak pamiętać, że środowisko uruchomieniowe programu PowerShell nie wywoła metody EndProcessing, jeśli polecenie cmdlet zostanie anulowane w połowie przetwarzania danych wejściowych lub jeśli w dowolnej części polecenia cmdlet wystąpi błąd zakończenia. Z tego powodu polecenie cmdlet, które wymaga oczyszczania obiektu, powinno implementować kompletny wzorzec System.IDisposable, w tym finalizator, aby środowisko uruchomieniowe może wywołać metody EndProcessing i System.IDisposable.Dispose na końcu przetwarzania. Aby uzyskać więcej informacji na temat wywoływania potoku poleceń przez program PowerShell, zobacz Cykl życia przetwarzania poleceń cmdlet.

Poniższy kod przedstawia implementację metody EndProcessing.

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ż

System.Management.Automation.Cmdlet.BeginProcessing

System.Management.Automation.Cmdlet.ProcessRecord

System.Management.Automation.Cmdlet.EndProcessing

SelectStr — samouczek

System.idisposable

Windows PowerShell Zestaw SDK powłoki