[英]How to tee the output streams of the current PowerShell script?
我有一个PowerShell脚本输出到stdout和stderr。 我想同时将这些文件发送给几个日志文件。
最好的方法是什么?
我考虑过几件事情:
param()
块。 我可以完全移动param()块,但我也想调用内部脚本有时用于测试目的(即没有得到发球台)。 我想我可以在外部脚本中使其成为可选行为.. 我记得当我以前写一些perl时,有一种方便的方法可以通过钩子全局重定向所有stdout / err输出。 PowerShell可以这样吗?
哎呦。 我应该花几分钟时间跟谷歌一起玩。
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更改为您想要的成绩单宽度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.