2014-09-12 48 views
3

如何將接收作業結果輸出到文件?接收作業輸出到文件

我試過,但它不工作:

$log = "C:\springfield\citrix\CitrixAutomation.log" 
Get-Job | Receive-Job | Out-File $log 

我也嘗試過的Get-Job | Receive-Job輸出保存到一個變量,但它不工作..

$log = "C:\springfield\citrix\CitrixAutomation.log" 
$getjobarr = @() 
Function LogWrite 
{ 
    Param ([array]$logstring) 
    $logstring | Out-File $log -Append 
} 

$getjobarr += Get-Job | Receive-Job 

LogWrite $getjobarr 

我認爲Get-JobReceive-Job只能輸出到控制檯只有,所以我怎麼能實現它?

感謝您的幫助

回答

3

作業「輸出」可以重定向到一個文件,例如:

PS> Start-Job {Get-ChildItem C:\users\keith} 

Id  Name   PSJobTypeName State   HasMoreData  Location    Command 
--  ----   ------------- -----   -----------  --------    ------- 
2  Job2   BackgroundJob Running  True   localhost   Get-ChildItem C:\users... 


PS> Receive-Job -id 2 | Out-File job.log 
PS> gc .\job.log 


    Directory: C:\users\keith 


Mode   LastWriteTime  Length Name 
----   -------------  ------ ---- 
d----  1/21/2014 8:24 PM  <DIR> .ssh 
d----  9/9/2014 10:00 PM  <DIR> Bin 
d-r--  9/11/2014 9:20 PM  <DIR> Contacts 
d-r--  9/11/2014 9:20 PM  <DIR> Desktop 

如果無論你在工作正在運行寫入到主機的話,是啊,你是大清洗。如果你控制它,使用write-output而不是write-host。另外,除非您可以坐在循環中等待作業狀態更改爲「已完成」或「失敗」,否則請確保您等到每個作業完成後再接收輸出。在請求輸出之前,可以使用Wait-Job等待作業完成。