Bearbetningsmetoder för cmdlet-indata

Cmdlets måste åsidosätta en eller flera av de metoder för bearbetning av indata som beskrivs i det här avsnittet för att utföra sitt arbete. Dessa metoder gör att cmdleten kan utföra åtgärder för förbearbetning, indatabearbetning och efterbearbetning. Med de här metoderna kan du också stoppa cmdlet-bearbetningen. Ett mer detaljerat exempel på hur du använder dessa metoder finns i SelectStr Tutorial.

Förbearbetningsåtgärder

Cmdlets ska åsidosätta metoden System.Management.Automation.Cmdlet.BeginProcessing för att lägga till förbearbetningsåtgärder som är giltiga för alla poster som ska bearbetas senare av cmdleten. När PowerShell bearbetar en kommandopipeline anropar PowerShell den här metoden en gång för varje instans av cmdleten i pipelinen. Mer information om hur PowerShell anropar kommandopipelinen finns i Cmdlet Processing Lifecycle.

Följande kod visar en implementering av metoden 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.");
}

Bearbetningsåtgärder för indata

Cmdlets kan åsidosätta metoden System.Management.Automation.Cmdlet.ProcessRecord för att bearbeta de indata som skickas till cmdleten. När PowerShell bearbetar en kommandopipeline anropar PowerShell den här metoden för varje indatapost som bearbetas av cmdleten . Mer information om hur PowerShell anropar kommandopipelinen finns i Cmdlet Processing Lifecycle.

Följande kod visar en implementering av metoden 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.");
}

Efterbearbetningsåtgärder

Cmdlets ska åsidosätta metoden System.Management.Automation.Cmdlet.EndProcessing för att lägga till alla efterbearbetningsåtgärder som är giltiga för alla poster som bearbetades av cmdleten. Din cmdlet kan till exempel behöva rensa objektvariabler när bearbetningen är klar.

När PowerShell bearbetar en kommandopipeline anropar PowerShell den här metoden en gång för varje instans av cmdleten i pipelinen. Det är dock viktigt att komma ihåg att PowerShell-körningen inte anropar EndProcessing-metoden om cmdleten avbryts mitt i bearbetningen av indata eller om ett avslutande fel inträffar i någon del av cmdleten. Därför bör en cmdlet som kräver objektrensning implementera det fullständiga mönstret System.IDiskosable, inklusive en slutförare, så att körningen kan anropa metoderna EndProcessing och System.IDiskosable.Dispose i slutet av bearbetningen. Mer information om hur PowerShell anropar kommandopipelinen finns i Cmdlet Processing Lifecycle.

Följande kod visar en implementering av metoden 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.");
}

Se även

System.Management.Automation.Cmdlet.BeginProcessing

System.Management.Automation.Cmdlet.ProcessRecord

System.Management.Automation.Cmdlet.EndProcessing

Självstudie om SelectStr

System.IDiskosable

Windows PowerShell Shell SDK