programing

파워셸 기능에서 파라미터를 통과하려면 어떻게 해야 합니까?

elecom 2023. 10. 25. 22:35
반응형

파워셸 기능에서 파라미터를 통과하려면 어떻게 해야 합니까?

다음과 같은 기능이 있습니다.

function global:Test-Multi {
    Param([string]$Suite)
    & perl -S "$Suite\runall.pl" -procs:$env:NUMBER_OF_PROCESSORS
}

사용자가 Test-Multi에 더 많은 파라미터를 지정하고 기본 레거시 Perl 스크립트에 직접 전달할 수 있도록 하고 싶습니다.

파워셸은 이러한 목적을 위해 추가적인 가변적인 행동을 허용하는 메커니즘을 제공합니까?

당신의 댓글을 보고 난 후, 옵션 3은 당신이 원하는 것과 정확하게 들립니다.


몇 가지 옵션이 있습니다.

  1. 사용하다$args(hjpotter92의 답변에 공을 돌립니다.)

  2. 추가 파라미터를 명시적으로 정의한 다음 함수에서 모두 구문 분석하여 펄 호출에 추가합니다.

  3. 인수와 함께 단일 매개 변수를 사용합니다.

     function global:Test-Multi {
         Param(
             [string]$Suite,
             [parameter(ValueFromRemainingArguments = $true)]
             [string[]]$Passthrough
             )
         & perl -S "$Suite\runall.pl" -procs:$env:NUMBER_OF_PROCESSORS @Passthrough
     }
    

$args인수를 올바르게 전달하지 못합니다.만약 당신이 인수들이 별개의 인수로 남아있기를 원한다면, 당신은 다음을 사용해야 합니다.@args대신.

원하는 것이 무엇인지 확실하지 않지만 함수에 전달된 인수는 다음에서 액세스할 수 있습니다.$args함수 내부에서 사용 가능한 변수.

언급URL : https://stackoverflow.com/questions/33701898/how-can-i-pass-through-parameters-in-a-powershell-function

반응형