• 10/27/2020
  • 20 minutes to read
    • S
    • s
    • s
    • c
    • g

Short description

Explains how to add parameters to advanced functions.,

긴 설명

매개 변수를 추가할 수 있습하는 고급 기능은 당신이 쓰 useparameter 특성과의 인수를 제한 매개 변수 값 functionusers 제출된 매개 변수입니다.

이 매개 변수에 추가하는 기능에서 사용자가 사용할 수 있는 additionto 일반적인 매개 변수는 PowerShell 자동으로 추가하면 모든 cmdlet andadvanced 능합니다. PowerShell commonparameters 에 대한 자세한 내용은 about_CommonParameters 를 참조하십시오.

PowerShell3 에서 시작.,0,@Args와 함께 splatting 을 사용하여 명령의 매개 변수를 나타낼 수 있습니다. Splatting 은 간단하고 advancedfunctions 에 유효합니다. 자세한 내용은 about_Functions andabout_splatting 을 참조하십시오.

형식의 전환을 매개 변수 값

를 제공하면 문자열로 인수를 매개 변수를 기대하는 differenttype,PowerShell 암시적으로 변환한 문자열을 매개 변수 목표 형식입니다.고급 함수는 매개 변수 값의 문화 불변 구문 분석을 수행합니다.

대조적으로,컴파일 된 cmdlet 에 대한 매개 변수 바인딩 중에 문화에 민감한 변환이 수행됩니다.,

이 예에서는 cmdlet 과매개 변수를 사용하는 스크립트 함수를 만듭니다. 현재 문화는 독일어 설정을 사용하도록 변경됩니다.독일어 형식의 날짜가 매개 변수에 전달됩니다.

Dienstag, 19. Juni 2018 00:00:00

위와 같이,cmdlet 사용하여 문화에 민감한 분석을 변환할 문자열.

고급 함수는 문화 불변 구문 분석을 사용하므로 오류 발생.

정적 매개 변수

정적 매개 변수는 매개 변수는 항상에서 사용할 수 있는 기능입니다.,PowerShell cmdlet 및 스크립트의 대부분의 매개 변수는 정적 매개 변수입니다.

이 선언의 컴퓨터이름 parameterthat 는 다음과 같은 특징이 있습니다.

  • 그것은 필수입니다(필수).
  • 파이프 라인에서 입력을 가져옵니다.
  • 문자열 배열을 입력으로 사용합니다.
Param( ] $ComputerName)

속성의 매개 변수를

이 섹션은 특성에 대해 설명합니다 추가할 수 있는 기능 매개 변수입니다.

모든 속성은 선택 사항입니다., 그러나 CmdletBindingattribute 를 생략하면 고급 함수로 인식되기 위해서는 함수가 매개 변수 특성을 포함해야합니다.

각 매개 변수 선언에 하나 또는 여러 개의 속성을 추가 할 수 있습니다. Parameterdeclaration 에 추가할 수 있는 특성 수에는 제한이 없습니다.

Parameter attribute

Parameter attribute 는 functionparameters 의 속성을 선언하는 데 사용됩니다.

이 매개 변수는 특성은 선택사항이며,생략할 수 있습니다 그것은 없으면의 매개 변수는 함수가 필요 특성입니다., 하지만,수급 기능,보다 간단한 함수,함수해야 합 eitherthe CmdletBinding 특성 또는 매개변수는 특성입니다.

이 매개 변수는 특성이 인수를 정의하는 특성의 매개 변수는지 여부와 같은 매개변수가 필수 또는 선택 사항입니다.매개 변수 속성,인수 및 인수 값을 선언하려면 다음 구문을 사용하십시오. 인수와 그 값을 묶는 괄호는 개입 공백이없는 매개 변수를 따라야합니다.,

Param( $ParameterName)

쉼표를 사용하여 괄호 내에서 인수를 구분합니다. Parameter 특성의 두 인수를 선언하려면 followingsyntax 를 사용하십시오.

Param( )

매개 변수 특성의 부울 인수 유형은 매개 변수 특성에서 생략 Falsewhen 하는 기본. 인수 값을$true로 설정하거나 인수를 이름으로 나열하십시오. 예를 들어 다음 매개 변수 속성은 동일합니다.,

CmdletBinding 특성을 사용하는 대안으로 인수없이 매개 변수 특성을 사용하는 경우 attribute 이름 뒤에 오는 괄호가 여전히 필요합니다.

Param( $ParameterName)

의무 인수

Mandatory인수를 나타내는 매개 변수가 필요합니다. Thisargument 가 지정되지 않은 경우 매개 변수는 선택 사항입니다.

다음 예제는 ComputerName 매개 변수를 선언합니다. 매개 변수를 필수로 만들기 위해Mandatory인수를 사용합니다.,

Param( ] $ComputerName)

위치를 인수

Position인수는지 여부를 결정 매개변수 이름이 필요한 키에 매개 변수가 사용되는 명령입니다. 할 때 매개 변수 선언을 포함하는Position인수,매개변수 이름을 생략할 수 있고 PowerShellidentifies 이름이 없는 매개변수 값에 의해 그것의 위치거나,주문에,목록되지 않은 매개 변수 값에서 명령입니다.,

경우에는Position인수를 지정하지 않 매개 변수 이름,이 별칭이나 약어,앞에 나와야 합 매개 변수 값을 할 때마다 theparameter 에서 사용되는 명령입니다.기본적으로 모든 함수 매개 변수는 위치입니다. PowerShell 은 positionnumbers 를 매개 변수에 할당합니다.function 에서 매개 변수가 선언 된 순서대로. 이 기능을 비활성화하려면 CmdletBinding 특성의PositionalBinding인수의 값을$False로 설정하십시오., Position인수는 CmdletBinding 특성의PositionalBinding인수의 값보다 우선합니다. 자세한 내용은 about_Functions_CmdletBindingAttribute 의PositionalBinding를 참조하십시오.

Position인수의 값은 정수로 지정됩니다. 0 의 positionvalue 는 명령의 첫 번째 위치를 나타내고,1 의 positionvalue 는 명령의 두 번째 위치를 나타냅니다.,

함수에 위치 매개 변수가없는 경우 PowerShell 은 매개 변수가 선언 된 순서에 따라 위치를 할당합니다.그러나 모범 사례로서이 과제에 의존하지 마십시오. 매개 변수를 위치 지정하려는 경우Position인수를 사용하십시오.

다음 예제는 ComputerName 매개 변수를 선언합니다. 값이 0 인Position인수를 사용합니다. 결과적으로 할 때,-ComputerNameisomitted 에서 명령,그 값을 해야 합 첫 번째 또는 익명해야 합서 명령입니다.,

Param( ] $ComputerName)

ParameterSetName 인수

ParameterSetName인수를 지정 매개 변수를 설정하는 aparameter 고 있습니다. 매개 변수 세트를 지정하지 않으면 매개 변수에 속합니다.함수에 의해 정의 된 모든 매개 변수 세트. 따라서 고유하려면 각 매개 변수 집합에 다른 매개 변수 집합의 구성원이 아닌 매개 변수가 하나 이상 있어야합니다.

참고

cmdlet 또는 함수의 경우 32 개의 매개 변수 집합의 제한이 있습니다.,

다음 예제를 선언합 컴퓨터에서 매개 변수를Computer매개 변수 설정,사용자 이름에서 매개 변수를User매개 변수 설정,그리고 aSummary 매개변수 모두에서 매개 변수를 설정합니다.

지정할 수 있습니다만 하나의ParameterSetName값에서 각각 인수하고 하나만ParameterSetName인수에서 각 매개변수는 특성이 있습니다. 두 개 이상의 매개 변수 집합에 aparameter 가 표시됨을 표시하려면 추가 매개 변수 집합을 추가합니다.,

다음 예에서 명시적으로 추가의 요약을 매개 변수를ComputerUser매개 변수를 설정합니다. 요약을 매개 변수는 선택 사항에는Computer매개변수 설정에 필수User매개 변수를 설정합니다.매개 변수 집합에 대한 자세한 내용은 매개 변수 집합 정보를 참조하십시오.

ValueFromPipeline 인수

ValueFromPipeline인수를 나타내는 매개 변수 inputfrom 파이프라인의 개체입니다., 함수가 객체의 속성뿐만 아니라 객체를 허용하는 경우이 인수를 지정하십시오.

다음 예제는 mandatoryand 파이프 라인에서 함수로 전달 된 객체를 받아들이는 ComputerName 매개 변수를 선언합니다.

Param( ] $ComputerName)

ValueFromPipelineByPropertyName 인수

ValueFromPipelineByPropertyName인수하는 것을 나타냅 parameteraccepts 입력 속 파이프라인의 개체입니다. 객체 속성은 매개 변수와 동일한 이름 또는 별칭을 가지고 있습니다.,

경우,예를 들어,함수는 컴퓨터 매개변수,그리고 pipedobject 는 컴퓨터이름 재산의 가치 ComputerNameproperty 에 할당된 기능의 컴퓨터 이름을 매개 변수입니다.

다음 예제를 선언합 컴퓨터 이름을 매개 변수는 mandatoryand 허용 입력을 개체에서의 컴퓨터이름 시설에 전달되던 기능을 통해 파이프 라인에 있습니다.,

Param( ] $ComputerName)

참고.

는 입력한 매개 변수는지 파이프라인 입력(by Value)또는(by PropertyName)를 사용하여 지연의-바인드 스크립트에 블록 theparameter.

지연 바인드 스크립트 블록은 매개 변수 바인딩 중에 자동으로 실행됩니다. 결과는 매개 변수에 바인딩됩니다. 지연 bindingdoes 작동하지 않을 매개 변수에 대해 정의된 형식으로ScriptBlock또는System.Object. 스크립트 블록은 호출되지 않고 통과됩니다.

여기에서 지연 바인딩 스크립트 블록에 대해 읽을 수 있습니다 about_Script_Blocks.md.,

ValueFromRemainingArguments 인수

ValueFromRemainingArguments인수를 나타내는 매개 변수 acceptsall 매개 변수의 값을 명령하지 않는 할당을 otherparameters 의 기능입니다.

다음 예제를 선언합 값을 매개 변수는 필수과 aRemaining 매개 변수는지 남아있는 모든 매개 변수 값이줄 제출하는 기능입니다.

Found 2 elements0: one1: two

참고.

이전에 PowerShell6.2 에 ValueFromRemainingArguments 컬렉션 wasjoined 으로 하나의 엔티티에 인덱스 0 입니다.,

HelpMessage 인수

HelpMessage인수하는 문자열을 지정합을 포함한 간략한 descriptionof 매개 변수는 그 값이 있습니다. PowerShell 은 프롬프트에이 메시지를 표시합니다.명령에서 필수 매개 변수 값이 누락되었을 때 나타납니다. Thisargument 는 선택적 매개 변수에 아무런 영향을 미치지 않습니다.

다음 예제에서는 예상 매개 변수 값을 설명하는 필수 ComputerName 매개 변수 및 ahelp 메시지를 선언합니다.,

없는 경우에는 다른 코멘트-기반 데 도움이 syntaxfor 기능(예를 들어,.SYNOPSIS)다음이 메시지도에 보여줍Get-Help출력됩니다.

Param( ] $ComputerName)

Alias attribute

Alias attribute 는 매개 변수의 대체 이름을 설정합니다.매개 변수에 할당할 수 있는 별칭 수에는 제한이 없습니다.

다음 예제는 필수 ComputerName 매개 변수에 CN andMachineName 별칭을 추가하는 매개 변수 선언을 보여줍니다.,

Param( ] $ComputerName)

SupportsWildcards 속성

SupportsWildcards 특성을 나타내는 데 사용되는 parameteraccepts 와일드카드는 값입니다. 다음 예제에서는 매개 변수 선언 와일드카드 값을 지원하는 필수 경로 매개 변수입니다.

Param( ] $Path)

이 특성을 사용하지 않는 자동으로 사용하는 와일드카드 지원합니다. Cmdletdeveloper 는 와일드 카드 입력을 처리 할 코드를 구현해야합니다. Wildcardssupported 는 기본 API 또는 PowerShell 공급자에 따라 다를 수 있습니다. 자세한 정보는 about_Wildcards 를 참조하십시오.,

매개 변수와 변수를 검증 속성

유효성에 직접 PowerShell 테스트 매개 변수 값 userssubmit 전화할 때는 고급 기능입니다. 매개 변수 값이 실패하면 오류가 발생하고 함수가 호출되지 않습니다. 매개 변수 유효성 검사는 제공된 입력에만 적용되며 기본 값과 같은 다른 값은 유효성이 검사되지 않습니다.

유효성 검사 특성을 사용하여 사용자가 변수에 지정할 수 있는 값을 제한할 수도 있습니다., Avalidation 특성과 함께 type converter 를 사용할 때 type converter 는 특성 앞에 정의되어야 합니다.

 $number = 7

AllowNull 검증 속성

AllowNull 특성할 수 있는 값의 필수 매개 변수를$null. 다음 예제는 hashtable ComputerInfo 매개 변수를 선언합니다.null 값을 가질 수 있습니다.

Param( $ComputerInfo)

참고.

AllowNull 특성 작동하지 않는 경우 형식 변환기 설정 tostring 으로 문자열 형식을 받아들이지 않는 null 값입니다., 이 시나리오에는 allowemptystring 특성을 사용할 수 있습니다.

AllowEmptyString 검증 속성

AllowEmptyString 특성할 수 있 필수 매개 변수 값을 tobe 빈 문자열은(""). 다음 예제는 빈 문자열 값을 가질 수있는 ComputerNameparameter 를 선언합니다.

Param( $ComputerName)

AllowEmptyCollection 검증 속성

AllowEmptyCollection 특성할 수 있는 값의 mandatoryparameter 빈집@()., 다음 예제에서는 빈 컬렉션 값을 가질 수 있는 aComputerName 매개 변수를 선언합니다.

Param( ] $ComputerName)

ValidateCount 검증 속성

ValidateCount 속성을 지정하는 최소 및 최대 ofparameter 는 값을 매개 변수를 받아들입니다. PowerShell 은 다음과 같은 경우 오류를 생성합니다.함수를 호출하는 명령의 매개 변수 값 수가 범위를 벗어납니다.

다음 매개 변수 선언은 ComputerName 매개 변수를 만듭니다.1~5 개의 매개 변수 값을 얻습니다.,

Param( ] $ComputerName)

ValidateLength 검증 속성

ValidateLength 속성을 지정하는 최소 및 최대 문자에서 매개 변수는 변수의 값입니다. PowerShell 은 매개 변수 또는 변수에 지정된 값의 길이가 therange 외부에 있으면 오류를 생성합니다.

다음 예에서,각 컴퓨터는 이름 하나가 있어야 하고 십자.

Param( ] $ComputerName)

다음 예제에서는 변수의 값을$number어야 합 minimumof 하나의 캐릭터에서는 길이 및 최대의 문자입니다.,

$number = '01'

참고.

이를 들어,값의01는 포장에 작은 따옴표. TheValidateLength 속성은 래핑 된 inquotes 없이 숫자를 허용하지 않습니다.

ValidatePattern 검증 속성

ValidatePattern 특성을 지정하는 정규 ‘scompared 를 매개 변수 또는 변수의 값입니다. PowerShell 은 값이 정규식 패턴과 일치하지 않으면 오류를 생성합니다.,

다음 예에서 매개 변수 값을 포함해야 합니다 네 개의 자리 숫자,그리고 각각의 숫자이어야 합 번호로 구성되어 있습니다.

Param( ")] ] $ComputerName)

다음 예제에서는 변수의 값을$number정확히 일치해야 합 afour 자리 숫자,그리고 각각의 숫자이어야 합 번호로 구성되어 있습니다.

$")]$number = 1111

ValidateRange 검증 속성

ValidateRange 특성을 지정합니다 숫자의 범위 또는 aValidateRangeKind enum 가치에 대한 각 매개변수 또는 변수의 값입니다.PowerShell 은 값이 해당 범위를 벗어나면 오류를 생성합니다.,

ValidateRangeKind 열거 형은 다음 값을 허용합니다.

  • 양수-0 보다 큰 숫자.
  • 음수-0 보다 작은 숫자입니다.
  • NonPositive-0 보다 작거나 같은 숫자입니다.
  • NonNegative-0 보다 크거나 같은 숫자.

다음 예에서 Trades 매개 변수의 값은 0 과 10 사이 여야합니다.

Param( $Attempts)

다음 예에서 변수$number의 값은 betweenzero 와 ten 이어야합니다.,

$number = 5

다음 예에서 변수$number의 값은 greaterthan zero 여야합니다.

$number = 1

ValidateScript 검증 속성

ValidateScript 특성을 지정하는 스크립트를 사용하여 검증 aparameter 또는 변수의 값입니다. PowerShell 은 스크립트에 값을 파이프하고 스크립트가$false를 반환하거나 스크립트가 anexception 을 던지면 오류를 생성합니다.,

ValidateScript 특성을 사용할 때 validateded 되는 값은$_변수에 매핑됩니다. $_변수를 사용하여 스크립트의 값을 참조 할 수 있습니다.

다음 예에서 EventDate 매개 변수의 값은 현재 날짜보다 높거나 같아야합니다.

Param( $EventDate)

다음 예제에서는 변수의 값을$date해야 합 초과하거나 동일한 현재 날짜와 시간이다.,

$date = (Get-Date)

참고.

사용하는 경우 ValidateScript,전달할 수 없는$null값을 theparameter. Null 값을 전달할 때 ValidateScript 는 theargument 의 유효성을 검사 할 수 없습니다.

ValidateSet 속성

ValidateSet 특성을 지정 세트의 유효한 값을 parameteror 변수할 수 있게 탭을 완료합니다. Powershell 은 aparameter 또는 변수 값이 세트의 값과 일치하지 않으면 오류를 생성합니다. 다음 예제에서 세부 매개 변수의 값은 낮음,평균 또는 높음 일 수 있습니다.,

Param( ] $Detail)

다음 예에서 변수$flavor의 값은 eitherChocolate,Strawberry 또는 Vanilla 여야합니다.

$flavor = "Strawberry"

유효성 검사는 해당 변수가 thescript 내에서도 할당 될 때마다 발생합니다. 예를 들어,다음과 같은 결과에 오류가 런타임:

Param( $Message)$Message = "bye"

동적 validateSet 값

사용할 수 있습니다 클래스를 동적으로 생성하는 값에 대한 ValidateSetat runtime., 다음 예에서,유효한 값 변수에 대해$Sound을 통해 생성된 라는 이름의 클래스 SoundNames 을 확인하는 threefilesystem 경로에서 사용 가능한 사운드 파일:

클래스를 다음으로 구현하는 동적 ValidateSet valueas 다음과 같:

Param( )] $Sound)

ValidateNotNull 검증 속성

ValidateNotNull 속성 지정 매개 변수 값을 수 없는$null. Powershell 은 매개 변수 값이$null인 경우 오류를 생성합니다.,

ValidateNotNull 특성을 사용할 수 있도록 설계되었을 때 매개 변수 isoptional 및 종류 정의되지 않는 형식 변환기를 사용할 수 있는 ‘timplicitly 변환 null 값이 같은 개체입니다. 을 지정하는 경우 유형 thatthat 암시적으로 변환 null 값이 같은 문자열이 null value 는 빈 문자열로 변환을 사용하는 경우에도 ValidateNotNullattribute. 이 시나리오의 경우 ValidateNotNullOrEmpty

다음 예에서 ID 매개 변수의 값은$null일 수 없습니다.,

Param( $ID)

ValidateNotNullOrEmpty 검증 속성

ValidateNotNullOrEmpty 속성 지정 매개 변수는 valuecan 지$null과할 수 없습 빈 문자열은(""). PowerShell 오류를 생성하는 경우 매개 변수를 사용하는 함수를 호출하지만,그 값은$null,anempty 문자열은(""),또는 빈 배열@().,

Param( ] $UserName)

ValidateDrive 검증 속성

ValidateDrive 속성 지정 매개 변수 값 mustrepresent 경로,그 참조하여 허용된 드라이브니다. 매개 변수 값이 theallowed 이외의 드라이브를 참조하는 경우 PowerShellgenerates 오류가 발생합니다. 드라이브 자체를 제외하고 경로의 존재는 확인되지 않습니다.

상대 경로를 사용하는 경우 현재 드라이브가 허용 된 드라이브 목록에 있어야합니다.,

Param( $Path)

ValidateUserDrive 검증 속성

ValidateUserDrive 속성 지정 매개 변수 값 mustrepresent 경로,그 참조는User드라이브입니다. 경로가 다른 드라이브를 참조하는 경우 PowerShell 은 anerror 를 생성합니다. 유효성 검사 특성은경로의 드라이브 부분의 존재에 대한 테스트.

상대 경로를 사용하는 경우 현재 드라이브는User여야합니다.,

Test-UserDrivePath: Cannot validate argument on parameter 'Path'. The pathargument drive C does not belong to the set of approved drives: User.Supply a path argument with an approved drive.

Test-UserDrivePath -Path 'User:\A_folder_that_does_not_exist'
Test-UserDrivePath: Cannot validate argument on parameter 'Path'. Cannotfind drive. A drive with the name 'User' does not exist.

정의할 수 있습니다User드라이브에서 충분한 관리(JEA)sessionconfigurations. 이 예에서는 사용자:드라이브를 만듭니다.

New-PSDrive -Name 'User' -PSProvider FileSystem -Root $env:HOMEPATH
True

ValidateTrustedData 검증 속성

이 특성이 추가되었 PowerShell6.1.1.

이때 속성은 PowerShell 자체에서 내부적으로 사용되며 외부 사용을 위해 사용되지 않습니다.,

동적 매개 변수

동적 매개 변수는 특정 조건에서만 사용할 수있는 cmdlet,함수 또는 스크립트의 매개 변수입니다.

예를 들어,여러 공급자 cmdlet 매개 변수를 사용할 수 있는 onlywhen cmdlet 에서 사용되는 공급자의 드라이브 또는에서 특정한 경로의 theprovider 드라이브입니다. 예를 들어,인코딩 매개 변수에서 사용할 수 있는Add-Content,Get-Content,andSet-Contentcmdlet 의 경우에만 사용된 ina 파일 시스템 드라이브입니다.,

할 수도 있습니다 만들기를 매개 변수가 나타나는 경우에만 다른 매개 변수는 사용됩 기능에서의 명령 또는 다른 매개변수는 특정 가치가있다.동적 매개 변수는 유용 할 수 있지만 필요한 경우에만 사용하십시오.사용자가 발견하기가 어려울 수 있습니다. 동적 매개 변수를 찾으려면 사용자가에 있어야 합니다 provider 경로를 사용하여 ArgumentList 매개 변수의Get-Commandurl 을 사용하여 경로를 매개 변수의Get-Help.

함수 또는 스크립트에 대한 동적 매개 변수를 만들려면DynamicParam키워드를 사용하십시오.,

이 구문은 다음과 같습니다:

DynamicParam {<statement-list>}

에 문의 목록을 사용하는If문의 조건을 지정할 수 underwhich 매개 변수에서 사용할 수 있는 기능입니다.

New-Objectcmdlet 을 사용하여 aSystem 을 만듭니다.관리.자동화.Runtimedefinedparameter 개체를 나타내는 매개 변수하고 이름을 지정합니다.

New-Object명령을 사용하여 aSystem 을 만들 수 있습니다.관리.자동화.,ParameterAttribute 체 representattributes 의 매개 변수와 같은 필수,위치,orValueFromPipeline 또는 그것의 매개변수 설정합니다.

다음 예제에서는 표준 매개 변수가 namedName 및 Path 인 샘플 함수와 dp1 이라는 선택적 동적 매개 변수를 보여줍니다. TheDP1 매개 변수를PSet1매개변수 설정에는 유형의Int32.,이 DP1 에서 매개 변수를 사용할 수 있는Get-Sample기능을 때만 조금씩의 경로를 매개로 시작HKLM:을 나타내는 그것의 beingusedHKEY_LOCAL_MACHINE레지스트리의 드라이브입니다.자세한 내용은 seeRuntimeDefinedParameter 입니다.

스위치 매개 변수

스위치 매개 변수는 매개변수를 매개 변수 값입니다. 그것들은 사용되어 하나의 효과 만 가질 때만 효과적입니다.예를 들어 powershell 의 NoProfile 매개 변수입니다.exe 는 switchparameter 입니다.,

함수에서 스위치 매개 변수를 만들려면 매개 변수 정의에Switch유형을 지정하십시오.

예를 들어,

Param(<ParameterName>)

또는,사용할 수 있는 다른 방법:

Param( $<ParameterName>)

스위치 매개 변수는 사용하기 쉽고 Boolean 매개 변수는 더 어려운 구문입니다.예를 들어 switch 매개 변수를 사용하려면 사용자가 매개 변수를 thecommand 에 입력합니다.

-IncludeAll

Boolean 매개 변수를 사용하려면,사용자 매개 변수하고 부울 값입니다.,

-IncludeAll:$true

switch 매개 변수를 만들 때,선택 매개 변수 이름이다. 매개 변수 이름은 매개 변수의 효과를 사용자에게 전달합니다.눈사태가 필요하다는 것을 암시 할 수있는 필터 또는 최대와 같은 모호한 용어는 피하십시오.

ArgumentCompleter 속성

ArgumentCompleter 특성을 추가할 수 있습 탭을 완료 값 toa 특정한 매개 변수입니다. ArgumentCompleter 특성을 정의해야합니다.탭 완성이 필요한 각 매개 변수., DynamicParameters 와 유사하게,사용 가능한 값은 사용자가 매개 변수 이름 Tabafter 를 누를 때 런타임에 계산됩니다.

ArgumentCompleter 속성을 추가하려면 스크립트 블록을 정의해야합니다.값을 결정합니다. 스크립트 블록은 다음을 수행해야합니다.매개 변수는 아래에 지정된 순서대로. 매개 변수의 이름은 다음과 같이 중요하지 않습니다.값은 위치 적으로 제공됩니다.,

이 구문은 다음과 같습니다:

ArgumentCompleter 스크립트 블록

블록 스크립트 매개 변수를 설정을 다음과 같은 값:

  • $commandName(0 위치로)-이 매개 변수의 이름으로 설정하는 명령에 대한 스크립트 블록을 제공하고 탭을 완료합니다.
  • $parameterName(위치 1)-이 매개 변수는 탭 완성이 필요한 매개 변수로 설정됩니다.
  • $wordToComplete(위치 2)-이 매개 변수는 사용자가 탭을 누르기 전에 hasprovided 값으로 설정됩니다., 스크립트 블록은 탭 완료 값을 결정하기 위해이 값을 사용해야합니다.
  • $commandAst(위치 3)-이 매개 변수는 현재 입력 라인에 대한 추상 SyntaxTree(AST)로 설정됩니다. 자세한 내용은 다음을 참조하십시오.클래스.
  • $fakeBoundParameters(Position4)-이 매개 변수를 설정하 hashtablecontaining$PSBoundParameterscmdlet 하기 전에 사용자 pressedTab. 자세한 내용은 about_automatic_variables 를 참조하십시오.,

ArgumentCompleter 스크립트를 차단해야 풀을 사용하여 값을 thepipeline,같은ForEach-Object,Where-Object,또는 다른 적절한 방법입니다.값 배열을 반환하면 PowerShell 이 전체 배열을 하나의 탭 완료 값으로 취급하게됩니다.

다음 예제는 값 매개 변수에 탭 완성을 추가합니다. Onlythe Value 매개 변수가 지정되면 가능한 모든 값 또는 인수 forValue 가 표시됩니다. 유형 매개 변수가 지정되면 값 매개 변수는 해당 유형에 대한 가능한 값만 표시합니다.,

또한-like연산자는 사용자가 followingcommand 를 입력하고 탭 완료를 사용하면 Apple 만 반환되도록합니다.나는 이것이 내가 할 수있는 유일한 방법이라고 생각한다.”라고 말하면서,나는 이것이 내가 할 수있는 유일한 방법이라고 생각한다.”라고 말하면서,나는 이것이 내가 할 수있는 유일한 방법이라고 생각한다.나는 이것이 내가 할 수있는 유일한 방법이라고 생각한다.