2014-08-29 3 views
3

기본적으로 명령 줄에서 내 ps1 스크립트를 실행하고 사용자 지정 인수를 내 스크립트에 전달해야합니다. 내 스크립트는 문자열 배열을 기대하지만이 명령을 실행할 때, 나는명령 줄에서 스크립트를 실행하고 문자열 배열

이 내 명령 라인 인수 'X1'을 받아들이는 위치 매개 변수를 찾을 수 없다는 오류 얻을 :

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -NoProfile -NonInteractive -File "C:\Program Files\MSBuild\MyScript.ps1" -builds "X1” “X2" "X3" "X4" 

내 이해를 그것은 첫 번째 매개 변수 'X1'로 무엇을해야 할지를 알고 있지만 두 번째 매개 변수로는 무엇을 해야할지 알 수 없으므로 충돌이 발생합니까? 어떤 아이디어가 있니?

+0

나는 파워 쉘에 익숙하지 그리고 난 당신이 여기 -이 요소가 "X1, X2, X3처럼 콜론 구분하지 않아야 게시해야 -properbly 스크립트를 모른다 .. "? – reporter

+0

은 쉼표와 차이가 없거나 알려지지 않아야합니다. –

답변

2

당신은 대신 -File 매개 변수의 -Command 매개 변수를 사용해야합니다 -command를 사용하여 작업을 수행합니다. 아래의 스크린 샷과 샘플 스크립트의 동작 변화를 확인하십시오. ,

[CmdletBinding()] 
param (
    [int[]] $MyInts 
) 

foreach ($MyInt in $MyInts) { 
    $MyInt + 1; 
} 

enter image description here

+1

알고 있어야합니다. TFS 2013의 RunScript가 -File을 사용하고 -Command는 사용하지 않기 때문에 무언가를 알아 내야합니다. 쉼표를 인식하고 거기에 문자열 배열을 만들려면 내 ps1 스크립트를 수정해야합니다. –

2

왜 나는 -file이 작동하지 않지만 그 매개 변수에 다른 알려진 문제점이 있는지 설명 할 수 없습니다. PowerShell을 사용할 때 적절한 종료 코드가 표시되지 않습니다.

Powershell.exe -ExecutionPolicy RemoteSigned -NoProfile -NonInteractive -Command "& {& 'C:\Program Files\MSBuild\myscript.ps1' -builds x1,x2,x3}" 
관련 문제