代码之家  ›  专栏  ›  技术社区  ›  scobi

如何获得当前PoScript脚本的输出流?

  •  2
  • scobi  · 技术社区  · 14 年前

    我有一个输出到stdout和stderr的PowerShell脚本。我想把它们同时放到几个日志文件中。

    最好的方法是什么?

    我考虑了几个问题:

    • 使用执行tee的函数包装写入错误和写入输出。
      • 我不太喜欢这样,因为(a)我失去了将值放在一行上并自动输出的简单能力,(b)我必须包装所有我调用的地方,包括本地exe,它们可能也有输出并包装它们。
    • 用一个外部脚本包装这个tee。
      • 这有点好,但现在我有一个问题需要复制 param() 阻止外部脚本中的内部脚本。我可以完全移动param()块,但有时为了测试目的(即不获取tee),我还想调用内部脚本。我想我可以在外部脚本中选择这个行为。

    1 回复  |  直到 14 年前
        1
  •  4
  •   scobi    14 年前

    http://technet.microsoft.com/en-us/library/dd347721.aspx

    http://blog.magenic.com/blogs/daniels/archive/2008/07/14/Output-Issue-with-Transcript-in-Powershell.aspx

    try
    {
        $host.ui.rawui.buffersize = `
            new-object system.management.automation.host.size `
                200, $host.ui.rawui.buffersize.height
    }
    catch {}