2013-03-24 27 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  : {} 

Çıktım nereye gitti? Standart çıkış/hata akışlarını nasıl görebilirim?Start-Job çıkışı nereye gider?

cevap

14

İşler arka planda çalışıyor, bu yüzden konsola yazmıyorlar. Bir işin çıktısını almak için tamamlandıktan sonra Receive-Job'u çalıştırmanız gerekir.

+1

Mükemmel. teşekkürler bayım. Bunu eklemeyi denemeden önce işin tamamlanmasını beklemenin çok önemli olduğunu düşünüyorum. –

+0

@GeorgeMauer Gerçekten. Bu detayı cevabıma ekledim. –

+0

Bu davranışı göremiyorum. Bunun yerine, konsolum rastgele işten çıkıp çıktı alır. Gerçi Wait-Job kullanmıyorum – Sam

İlgili konular