2013-01-04 2 views
1

문자열을 매개 변수로 사용하는 메서드가 있습니다. 이 문자열은 값과 연결됩니다. 처리의 끝에서 나는함수에 전달 된 powershell에서 문자열에 추가하는 방법

"start 1 2 3 " 

내가 [참조]를 사용하여 검토 한 결과 예상 완전한 연결된 문자열

function MyFunction() 
{ 
    Param ($output) 

    $msg = "x " #say this x was different per call 
    $output += $msg 
} 

$output = "start " 
MyFunction -output $output 
MyFunction -output $output 
MyFunction -output $output 

Write-Host $output 

출력

"start " 

을 필요로하지만이 적용 값 유형 및 참조 유형이 아닙니다.

업데이트

은 어떻게 당신은 결과에게의 MyFunction START2 내에서 추가

start1을 .... 기대 즉

$output1 = "start1 " 
$output2 = "start2 " 

MyFunction -output $output1 
MyFunction -output $output2 

WriteHost($output1) 
WriteHost($output2) 

, 함수에 다른 이름 변수를 전달 .... MyFunction 내에서 추가됨

답변

4

내 함수에는 사용자가 없습니다. 스크립트의 나머지 부분과 동일한 범위에 있습니다. 그래서 당신은 당신이 $ 스크립트를 사용하여 $ 출력을 업데이트 스크립트 범위를 지정해야합니다 : 출력 :

$output= "start " 
function MyFunction() 
{ 
    Param ($output) 

    $msg = "x " #say this x was different per call 
    $script:output+=$msg 


} 


MyFunction -output $output 
MyFunction -output $output 
MyFunction -output $output 

Write-Host $output 
+0

다른 이름 변수, 어떤 아이디어를 포함하는 내 질문에 업데이트? – David

+0

어떤 결과가 예상됩니까? –

+0

다시 업데이트하면, 내가 추가하고자하는 함수로 통과 한 후 결과를 표시합니다. 내게 그것은 선언 된 변수 이름이 함수에서 같은 변수 이름이어야하는 것 같습니다? – David

관련 문제