在 PowerShell 中,如何将错误、警告、写入主机输出捕获到单个文件中?

Posted

技术标签:

【中文标题】在 PowerShell 中,如何将错误、警告、写入主机输出捕获到单个文件中?【英文标题】:In PowerShell how to capture error, warning, write-host output into a single file? 【发布时间】:2011-01-26 08:48:39 【问题描述】:

在PowerShell 中如何将错误、警告、写入主机输出捕获到单个文件中?

当我执行外部命令/write-warning/write-error/write-host 时,我需要将所有信息捕获到一个文件中。

当我将写入错误重定向到日志文件时,它不会显示与控制台上显示的内容相同的内容。它将包含一些我不需要的其他信息。

是否可以在日志文件中使用 ERROR: 前缀错误,使用 WARN: 警告?

【问题讨论】:

【参考方案1】:

看看 Oisin 的 PowerShell 2.0: A Configurable and Flexible Script Logger Module。应该可以在消息前加上您的自定义字符串('ERROR'、'WARN'、...)

【讨论】:

【参考方案2】:

执行此操作的简单方法是使用 cmd.exe 例如:

cmd /c powershell.exe -file <path_to_script> > script.log

【讨论】:

【参考方案3】:

也许 Start-Transcript 和 Stop-Transcript 会做你想做的事。 (PowerShell 2.0)

【讨论】:

Start-Transcript 将捕获那些其他流,但它不会捕获来自本机命令(控制台 exe)的任何输出。这对很多人来说是一个致命的缺陷。

以上是关于在 PowerShell 中,如何将错误、警告、写入主机输出捕获到单个文件中?的主要内容,如果未能解决你的问题,请参考以下文章

在Powershell中忽略来自FFMPEG控制台输出的特定警告

PowerShell脚本,每隔10分钟监视IIS日志500个错误

如何将错误和警告记录到文件中?

需要Powershell脚本帮助

Powershell:记录文件移动到日志文件,通过写日志

如何在 PowerShell 中输出内容