2013-03-24 3 views
5
W:> $job = start-job { Write-Output "hi there"; throw "an error!" } | Wait-Job 
W:> $job | select * 


State   : Failed 
HasMoreData : True 
StatusMessage : 
Location  : localhost 
Command  : Write-Output "hi there"; throw "an error!" 
JobStateInfo : Failed 
Finished  : System.Threading.ManualResetEvent 
InstanceId : 882957a9-a5e0-4876-bd22-0dbd87512f10 
Id   : 7 
Name   : Job7 
ChildJobs  : {Job8} 
PSBeginTime : 3/24/2013 5:52:41 PM 
PSEndTime  : 3/24/2013 5:52:47 PM 
PSJobTypeName : BackgroundJob 
Output  : {} 
Error   : {} 
Progress  : {} 
Verbose  : {} 
Debug   : {} 
Warning  : {} 

내 출력은 어디로 갔습니까? 표준 출력/오류 스트림을 보려면 어떻게해야합니까?Start-Job 출력은 어디로 이동합니까?

답변

14

작업이 백그라운드에서 실행 중이므로 콘솔에 쓰지 않습니다. 출력을 수집하기 위해 작업이 완료된 후에 Receive-Job을 실행해야합니다.

+1

Perfect. 감사합니다. 나는 그것을받는 것을 시도하기 전에 직업이 완료되기를 기다리는 것이 중요하다고 생각한다. –

+0

@GeorgeMauer 사실. 나는이 대답을 나의 대답에 덧붙였다. –

+0

이 동작이 보이지 않습니다. 대신 내 콘솔은 무작위로 작업의 결과물을 얻을 수 있습니다. 나는 Wait-Job을 사용하지 않고있다. – Sam

관련 문제