다음을 통해 공유


Cmdlet 입력 처리 메서드

Cmdlet은 작업을 수행 하기 위해이 항목에서 설명 하는 하나 이상의 입력 처리 방법을 재정의 해야 합니다. 이러한 메서드를 통해 cmdlet은 전처리, 입력 처리 및 사후 처리 작업을 수행할 수 있습니다. 이러한 메서드를 사용 하 여 cmdlet 처리를 중지할 수도 있습니다. 이러한 메서드를 사용 하는 방법에 대 한 자세한 예제는 Selectstr 자습서를 참조 하세요.

전처리 작업

Cmdlet은 나중에 cmdlet에 의해 처리 되는 모든 레코드에 유효한 전처리 작업을 추가 하기 위해 system.object 를 재정의 해야 합니다. PowerShell에서 명령 파이프라인을 처리할 때 PowerShell은 파이프라인에서 cmdlet의 각 인스턴스에 대해이 메서드를 한 번씩 호출 합니다. PowerShell에서 명령 파이프라인을 호출 하는 방법에 대 한 자세한 내용은 Cmdlet 처리 수명 주기를 참조 하세요.

다음 코드에서는 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.");
}

입력 처리 작업

Cmdlet은 ProcessRecord 메서드를 재정의 하 여 cmdlet으로 전송 되는 입력을 처리할 수 있습니다. PowerShell에서 명령 파이프라인을 처리할 때 cmdlet에 의해 처리 되는 각 입력 레코드에 대해이 메서드를 호출 합니다. PowerShell에서 명령 파이프라인을 호출 하는 방법에 대 한 자세한 내용은 Cmdlet 처리 수명 주기를 참조 하세요.

다음 코드에서는 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.");
}

후 처리 작업

Cmdlet은 cmdlet에 의해 처리 된 모든 레코드에 유효한 후 처리 작업을 추가 하기 위해 system.object 를 재정의 해야 합니다. 예를 들어 cmdlet은 처리를 완료 한 후 개체 변수를 정리 해야 할 수 있습니다.

PowerShell에서 명령 파이프라인을 처리할 때 PowerShell은 파이프라인에서 cmdlet의 각 인스턴스에 대해이 메서드를 한 번씩 호출 합니다. 그러나 cmdlet이 입력 처리를 통해 중간에 취소 되거나 cmdlet의 일부에서 종료 오류가 발생 하는 경우에는 PowerShell 런타임이 EndProcessing 메서드를 호출 하지 않는다는 점을 기억해 야 합니다. 이러한 이유로 개체 정리를 필요로 하는 cmdlet은 종료자를 포함 하 여 전체 system.string 패턴을 구현 해야 합니다. 이렇게 하면 런타임에서 처리가 끝날 때 EndProcessing 및 system.string 메서드를 모두 호출할 수 있습니다. PowerShell에서 명령 파이프라인을 호출 하는 방법에 대 한 자세한 내용은 Cmdlet 처리 수명 주기를 참조 하세요.

다음 코드에서는 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.object를 처리 합니다.

ProcessRecord입니다.

System.object..

SelectStr 자습서

System.IDisposable

Windows PowerShell Shell SDK