Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Командлеты должны переопределять один или несколько методов обработки ввода, описанных в этом разделе, для выполнения их работы. Эти методы позволяют командлету выполнять операции предварительной обработки, обработки входных данных и последующей обработки. Эти методы также позволяют прерывать обработку командлетов. Более подробный пример использования этих методов см. в разделе Учебник по селектстр.
Операции предварительной обработки
Командлеты должны переопределять метод System. Management. Automation. командлет. BeginProcessing для добавления любых операций предварительной обработки, допустимых для всех записей, которые будут обрабатываться этим командлетом позже. Когда PowerShell обрабатывает конвейер команд, PowerShell вызывает этот метод один раз для каждого экземпляра командлета в конвейере. Дополнительные сведения о том, как PowerShell вызывает конвейер команд, см. в разделе жизненный цикл обработки командлетов.
В следующем коде показана реализация метода 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.");
}
Операции обработки входных данных
Командлеты могут переопределять метод System. Management. Automation. командлет. ProcessRecord для обработки входных данных, отправляемых в командлет. Когда PowerShell обрабатывает конвейер команд, PowerShell вызывает этот метод для каждой входной записи, обрабатываемой командлетом. Дополнительные сведения о том, как PowerShell вызывает конвейер команд, см. в разделе жизненный цикл обработки командлетов.
В следующем коде показана реализация метода 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.");
}
Операции, выполняемые после обработки
Командлеты должны переопределять метод System. Management. Automation. командлет. EndProcessing для добавления любых операций последующей обработки, допустимых для всех записей, обработанных командлетом. Например, командлету может потребоваться очистить переменные объекта после завершения обработки.
Когда PowerShell обрабатывает конвейер команд, PowerShell вызывает этот метод один раз для каждого экземпляра командлета в конвейере. Однако важно помнить, что среда выполнения PowerShell не будет вызывать метод EndProcessing, если посрединное значение командлета отменяется через входную обработку или если в какой-либо части командлета возникает неустранимая ошибка. По этой причине командлет, требующий очистки объектов, должен реализовать полный шаблон System. IDisposable , включая метод завершения, чтобы среда выполнения могла вызывать методы EndProcessing и System. IDisposable. Dispose в конце обработки. Дополнительные сведения о том, как PowerShell вызывает конвейер команд, см. в разделе жизненный цикл обработки командлетов.
В следующем коде показана реализация метода 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.");
}
См. также:
System. Management. Automation. командлет. BeginProcessing
System. Management. Automation. командлет. ProcessRecord