PowerShell:将控制台输出发送到文件,而不会震耳欲聋

时间:2011-02-24 21:20:58

标签: powershell redirect console

我有很多PowerShell脚本。一个主要的,称为其他的,儿童的。这些PS脚本依次调用windows CMD脚本,bash脚本和控制台应用程序。所有这些脚本和应用程序都将消息写入控制台例如,PowerShell脚本正在使用Write-Host scriptlet来实现此目的。

问题:如何轻松地将所有此控制台输出重定向(发送)到某个文件,同时不会震耳欲聋(取消)此控制台输出?我希望能够从控制台输出中看到什么,还有日志文件中的消息历史记录。

感谢。

4 个答案:

答案 0 :(得分:6)

您可以使用tee等效的PowerShell:Tee-Object

PS:serverfault.com和/或superuser.com更适合这样的问题。

答案 1 :(得分:5)

您可以尝试Start-TranscriptStop-Transcript。它有一些限制,如不捕获本机exe输出。 PowerShell会话也是全球性的。

答案 2 :(得分:2)

我找到了抓取控制台输出的脚本:http://gallery.technet.microsoft.com/scriptcenter/e8fbffde-7d95-42d9-81de-5eb3d9c089e0。脚本返回HTML以保留颜色。

唯一的缺点 - 你必须在脚本结束时调用它来捕获它所做的所有控制台输出。

答案 3 :(得分:1)

您可能需要编写自定义主机才能执行此操作。这不是一件非常难的事情,但确实需要一些托管代码。