2014-07-15 4 views
0

PowerShell v2.0에서 다음 두 줄의 코드를 작업으로 실행하려고하는데 문제가 있습니다. 나는 구문 권리가 있다고 생각하지만, 나는 내가 무엇을해야 무슨 생각을 할 수 없다, 그래서 나는 분명히 ...이 두 라인 PowerShell에서 작동시작 작업이 null 매개 변수로 표시됨

$report = <command line thing> 
invoke-expression $report 

을 뭔가 잘못하고있는 중이 야. 나는 다음과 같은 오류가

start-job -scriptblock {invoke-expression $report} -argumentlist $report | wait-job | receive-job 

: 내가 시작 작업 명령에 넣어하려고 할 때

Cannot bind argument to parameter 'Command' because it is null. 
    + CategoryInfo   : InvalidData: (:) [Invoke-Expression], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.InvokeExpre 
    ssionCommand 
    + PSComputerName  : localhost 

나는 인수가 나는 invoke-을 전달하고 있습니다 말한 것으로 그 오류를 이해 표현식은 null이지만, -argumentlist 매개 변수에 $report을 전달하면 문제가 해결 될 것이라고 생각했습니다.

답변

0

당신은 당신이 직접하지 않는 $report에 액세스 할 수 없습니다 :

-scriptblock {param($report) invoke-expression $report} 

param($report) 부분은 -ArgumentList를 통해 전달 된 $report 변수를 캡처하고 스크립트 블록 내부에 사용하기에 사용할 수 있습니다.