2012-06-16 7 views
3

괄호가있는 powershell에서 매개 변수를 사용하여 함수를 호출하는 방법. 내가 Greet Ricardo 5 또는 Greet "Ricardo" 5 작품을 사용하여 함수를 호출하면괄호 Powershell 함수

나는 예를 들어이 기능

function Greet([string]$name , [int]$times) 
{ 
    for ([int]$i = 1; $i -le $times;$i++) 
    { 
     Write-Host Hiiii $name 
    } 
} 

있습니다. 그러나 Greet ("Ricardo",5) 또는 Greet("Ricardo" ; 5)을 사용할 때 실패합니다.

무엇이 잘못 되었나요?

+0

없이 괄호 어떤 문제가 있습니까? – Paulpro

+0

아무 것도. 나는 괄호를 사용하는 함수 (cmd-lets)를 어떻게 생성하는지 궁금하다. –

답변

12

함수는 cmdlet과 유사하게 동작합니다. 즉, dir (c : \ temp)을 입력하지 마십시오. 또한 수

function Greet([string[]]$names, [int]$times=5) { 
    foreach ($name in $names) { 
     1..$times | Foreach {"Hi $name"} 
    } 
} 

Greet Ricardo (1+4) 

Great Ricardo # Note that $times defaults to 5 

을() 당신과 같이 표현식을 지정할 수 있도록

Greet Recardo 5 
Greet -times 5 -name Ricardo 

PowerShell을 사용하는을 : 함수 마찬가지로 이름과 선택적 매개 변수가 예, 위치 지원, 공간 분리와 같은 cmdlet이 같은 매개 변수를 당신이 노래로 평가 ("Ricardo",5) 같은 것을 전달 그래서

Greet Ricardo,Lucy,Ethyl (6-1) 

: 쉼표로 구분 된 목록의 예를 사용하여 간단한 배열을 지정 le 매개 변수 값은 두 개의 요소 "Ricardo"5을 포함하는 배열입니다. 이 값은 $name 매개 변수로 전달되지만 $times 매개 변수에는 값이 없습니다.

당신이 괄호 매개 변수 목록을 사용하는 유일한 시간이 호출 .NET 방법은 예컨대 :

"Hello World".Substring(6, 3) 
관련 문제