在 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控制台输出的特定警告