我有一个PowerShell脚本输出到stdout和stderr。我想同时将它们发给几个日志文件。
最好的方法是什么?
我考虑过几件事:
param()
块的问题。我可以完全移动param()块,但我也想调用内部脚本有时用于测试目的(即没有得到发球台)。我想我可以在外部脚本中将其作为可选行为.. 我记得当我以前写一些perl时,有一种方便的方法可以通过钩子全局重定向所有stdout / err输出。 PowerShell可以这样吗?
答案 0 :(得分:4)
糟糕。我应该花几分钟时间与谷歌相处。
Start-Transcript就是这样做的!
http://technet.microsoft.com/en-us/library/dd347721.aspx
..虽然它不捕获exe的输出,但只有PowerShell。这是一个很好的解决方法:
另一个更新:我发现Start-Transcript使用主机窗口缓冲区宽度,这在系统帐户上运行计划任务时太窄了。这是如何解决这个问题。将这样的内容添加到脚本的顶部:
try
{
$host.ui.rawui.buffersize = `
new-object system.management.automation.host.size `
200, $host.ui.rawui.buffersize.height
}
catch {}
将200更改为您想要的成绩单宽度。