powershell之接收作业输出到文件

cloudgamer 阅读:30 2024-10-25 08:56:14 评论:0

如何将接收作业结果输出到文件?

我试过了,但没用:

$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 只能输出到控制台,那么我该如何实现呢?

谢谢你的帮助

请您参考如下方法:

作业“输出”可以重定向到一个文件,例如:

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 

如果您在作业中运行的任何内容都写入主机,那么是的,您就完蛋了。如果您控制它,请使用写输出而不是写主机。此外,请确保等到每个作业完成后再接收其输出,除非您可以坐在循环中等待作业状态更改为“已完成”或“失败”。您可以使用 Wait-Job 等待作业完成,然后再请求其输出。


标签:Shell
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号