.ps1 스크립트 파일에 여러 가지 도우미 함수가있는 고급 기능이 있습니다.함수를 스크립트 파일로 구성하여 명령 줄에서 호출하는 방법은 무엇입니까?
AdvFunc을 명령 줄에서 호출 할 수 있도록 보조 기능을 구성하려면 어떻게해야합니까? 은 AdvFunc에서 도우미 기능을 사용하지 못하도록하지 않으시겠습니까? script.ps1의
축약 된 내용 :
Function AdvFunc {
[cmdletbinding(DefaultParameterSetName='Scheduled')]
Param (
[Parameter(ValueFromPipeline=$true, ParameterSetName='Scheduled')]$SomeValue
)
Begin {
$value = Helper1 $stuff
}
Process {
# do stuff
}
End {
# call Helper2
}
}
Helper1 {
Param ($stuff)
# do stuff
Return $valueForAdvFunc
}
Helper2 {
# do other stuff
}
# Entry Point
$collection | AdvFunc
script.ps1 현재 스케줄러에 의해 출시 예상대로 미리 정의 된 $ 수집을 처리한다.
문제는 다른 매개 변수 집합과 같은 명령에서 AdvFunc를 호출해야한다는 것입니다. 아래에 AdHoc
매개 변수 세트를 추가했습니다. 이것은 AdvFunc에 다른 콜렉션을 보내는데 사용됩니다.
Param (
[Parameter(ValueFromPipeline=$true, ParameterSetName='Scheduled')]$SomeValue,
[Parameter(ParameterSetName='AdHoc')][string]$OtherValue1,
[Parameter(ParameterSetName='AdHoc')][string]$OtherValue2
)
은 분명히이 도우미 기능이 더 이상 같은이 .ps1 파일에있을 수 있다는 것을 의미 : 나는 일을 알고있는 것처럼,이 script.ps1의 첫 번째 라인이 지금해야 의미합니다.
이제는 스크립트 파일 (필요에 따라 점을 찍음)이 필요합니까?
사용해야합니까 : helpers.ps1(여러 도우미 기능을 포함) 및 collection.ps1 (단지 $ 컬렉션이 script.ps1에 파이프되는) (단 AdvFunc를 포함) script.ps1, ?
다른 방법이 있습니까?
"AdHoc 매개 변수 세트를 사용하여 AdvFunc을 호출하고 싶습니다."는 의미는 무엇입니까? 매개 변수 집합을 즉시 재정의 하시겠습니까? 왜? 이를 위해 무엇이 필요하다고 생각하십니까? 즉,이를 수행하여 해결하고자하는 실제 문제는 무엇입니까? –
'AdHoc' 매개 변수 세트는 두 번째 코드 블록에 표시됩니다. 그것은 재정의되지 않습니다. AdvFunc에 추가해야 할 새로운 매개 변수 세트입니다. 이 추가 매개 변수 세트는'Scheduled' 매개 변수 세트와 함께 내장'$ collection'을 사용하는 예약 된 태스크 대신 임시 작업을 처리합니다. – jott19