Métodos de procesamiento de entrada del cmdlet
Los cmdlets deben invalidar uno o varios de los métodos de procesamiento de entrada descritos en este tema para realizar su trabajo. Estos métodos permiten al cmdlet realizar operaciones de procesamiento previo, procesamiento de entrada y procesamiento posterior. Estos métodos también permiten detener el procesamiento de cmdlets. Para obtener un ejemplo más detallado de cómo usar estos métodos, vea SelectStr Tutorial.
Operaciones de procesamiento previo
Los cmdlets deben invalidar el método System.Management.Automation.Cmdlet.BeginProcessing para agregar las operaciones de preprocesamiento válidas para todos los registros que el cmdlet procesará más adelante. Cuando PowerShell procesa una canalización de comandos, PowerShell llama a este método una vez para cada instancia del cmdlet de la canalización. Para obtener más información sobre cómo PowerShell invoca la canalización de comandos, vea Ciclo de vida de procesamiento de cmdlets.
El código siguiente muestra una implementación del método 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.");
}
Operaciones de procesamiento de entrada
Los cmdlets pueden invalidar el método System.Management.Automation.Cmdlet.ProcessRecord para procesar la entrada que se envía al cmdlet. Cuando PowerShell procesa una canalización de comandos, PowerShell llama a este método para cada registro de entrada procesado por el cmdlet. Para obtener más información sobre cómo PowerShell invoca la canalización de comandos, vea Ciclo de vida de procesamiento de cmdlets.
El código siguiente muestra una implementación del método 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.");
}
Operaciones posteriores al procesamiento
Los cmdlets deben invalidar el método System.Management.Automation.Cmdlet.EndProcessing para agregar las operaciones posteriores al procesamiento válidas para todos los registros procesados por el cmdlet. Por ejemplo, es posible que el cmdlet tenga que limpiar las variables de objeto una vez finalizado el procesamiento.
Cuando PowerShell procesa una canalización de comandos, PowerShell llama a este método una vez para cada instancia del cmdlet de la canalización. Sin embargo, es importante recordar que el tiempo de ejecución de PowerShell no llamará al método EndProcessing si el cmdlet se cancela a mitad de su procesamiento de entrada o si se produce un error de terminación en cualquier parte del cmdlet. Por este motivo, un cmdlet que requiere limpieza de objetos debe implementar el patrón System.IDisposable completo, incluido un finalizador, para que el tiempo de ejecución pueda llamar a los métodos EndProcessing y System.IDisposable.Dispose al final del procesamiento. Para obtener más información sobre cómo PowerShell invoca la canalización de comandos, vea Ciclo de vida de procesamiento de cmdlets.
El código siguiente muestra una implementación del método 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.");
}
Consulte también
System.Management.Automation.Cmdlet.BeginProcessing
System.Management.Automation.Cmdlet.ProcessRecord