어떻게 내가 주위에 얻을 PowerShell 는 결합되지 않은 파이프라인 매개 변수가 될 때까지 후 BeginProcessing 이라고?

StackOverflow https://stackoverflow.com/questions/1303282

  •  19-09-2019
  •  | 
  •  

문제

내가 쓰용 skype 에서 호출될 수 있습의 파이프라인.이 Cmdlet 기 매개 변수는 ValueFromPipelineByPropertyName 정의된 특성하도록 Cmdlet 사용할 수 있는 동일한 매개 변수를 정의된 이름에서 앞서 파이프 라인에 있습니다.

역설적으로 일부에 재정의 BeginProcessing() 방법,활용한 매개 변수 중 하나가 얻을 수있는 그것의 값밖에 없에서 파이프 라인에 있습니다.에 따라 Cmdlet 처리 수명 주기, 바인딩의 파이프라인 매개 변수가 발생하지 않을 때까지 후에 BeginProcessing() 라고 합니다.따라서,그것은 보인다는 것을 의존에서는 파이프라인딩 매개 변수는 경우 시도 하에서 사용되는 BeginProcessing().

나는 생각에 대해 이동하는 것을 ProcessRecord() 방법입니다.불행하게도,거기에 하나는 시간,상대적으로 비용이 많이 드는 작업이 필요로 하는 발생할 수 있습니다.최고의 장소는 이런 일이 있을 것으로 보인 BeginProcessing() 방법도록 하려면 그만 일어나면서 파이프 라인에 있습니다.

A 몇 가지 질문 질문을 둘러싼 이:

  1. 방법 이것을 이용할 수 있을까요?
  2. 이러한 동일한 매개 변수도 필수 특성 설정합니다.할 수 있는 방법도 이 없 PowerShell 에 대해 불평하지 않는 이러한 필요한 매개 변수는?

사전에 감사한 생각입니다.


업데이트

나는 두번째 부분의 질문으로 나가는 것을 깨달았는지 이해하지 못 파이프라인딩 매개 변수입니다.I mistakingly 생각하는 파이프라인딩 매개변수에서 나온 이전 Cmdlet 는 실행 파이프 라인에 있습니다.실제로에서 올 를 통해 전달되는 파이프라인!내가 참조 게시물에 의해 스 Hill 하는 데 도움이 이 사실을 이해하고 있습니다.

도움이 되었습니까?

해결책

당신은 설정할 수 있는 인스턴스 분야 bool(Init)에서 false 로 BeginProcessing.다음 확인하십시오 매개변수를 설정에서 BeginProcessing.는 경우 그것은 다음을 호출하는 방법은 한 시간 init(InitMe).에 ProcessRecord 의 값을 확인 Init 고 그것이 잘못된 경우,다음을 호출 InitMe.InitMe 설정해야 Init 을 사실을 반환하기 전에.

에 대한 당신의 두 번째 질문을 경우,표시된 매개 변수를 필수로 다음을 제공해야 하나로 매개 변수를 통해 또는 파이프 라인에 있습니다.당신은 당신을 사용하여 여러 매개변수 세트?그렇다면,다음 경우에도 매개변수로 표시된 필수이며,그것은 필수입니다 경우 관련 매개변수 설정 하나에 의해 결정되는 PowerShell 서 사용하는 것에 대한 특정한 호출합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top