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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla