2009-05-08 6 views

답변

8

확장 메서드가있는 형식을 패치하는 방법을 모르겠습니다. 그러나

PS> $a = "foo" 
PS> $a = add-member -in $a -memberType ScriptMethod -name Bar -value { $this + "bar" } -passthru 
PS> $a.Foo() 
foobar 

편집 내가 PowerShell을 사랑하지만 정말 난해한 구문을 마련 않는 완전히 완전히 읽을 수 PowerShell을 구문 :

설명 추가 회원 cmdlet을 통해 개체를 패치 확실히 가능 때때로.

  • "-in"이 inputObject의 약자이며, 본질적으로이
  • "-MemberType"에 구성원을 추가 말한다 : 당신이 방법, 노트 속성을 포함한 런타임 객체에 추가 할 수있는 값의 여러 가지 종류가 있습니다 , code method 등 ... 전체 목록은 "get-help add-member -full"을 참조하십시오.
  • "-passthru": 멤버가 추가 된 객체를 가져 와서 파이프 라인 아래로 밀어 넣으십시오. 이 플래그가 없으면 배정은 $a에 파이프 라인을 지정하고 할당합니다.
  • 할당 호출은 기본적으로 $a 지금 당신은 당신이 특정 유형에 추가 할 메서드 또는 속성이있는 경우, 당신은 PowerShell에서의 적응 유형을 통해 사용자 정의 형의 확장을 만들 수 있습니다
+0

+1에서 찾을 수 있습니다. $ a = add-member는 약간 이상하게 보입니다. -in 및 -passthru 스위치는 무엇을합니까? – BuddyJoe

+0

@Tyndall, 의견이 업데이트 됨 – JaredPar

+0

감사합니다. JaredPar – BuddyJoe

9

을 추가하는 방법을 가지고 있음을 보장한다 체계.

사용자 지정 유형 확장은 속성 또는 스크립트 메서드를 유형에 대해 설명하고 Update-TypeData cmdlet을 통해 PowerShell 세션에로드하는 XML 파일입니다.

이의 좋은 예는 약간의 구문에 정교한 수 있 었는가 PowerShell Team Blog - Hate Add-Member? (PowerShell's Adaptive Type System to the Rescue)

+0

예, 이것은 원래 포스터가 찾고있는 답변입니다. – JasonMArcher

+0

나는이 방법에 비틀 거렸다. 확실하지 않다. PowerShell과 XML에서 최대한 많은 것을 유지하고 싶습니다. 흠. 내가 할 많은 "개조"가 있다면 나는이 방법을 사용할 것이라고 생각한다. – BuddyJoe

관련 문제