【问题标题】:redirect stderr to stdout to console and two files将标准错误重定向到标准输出到控制台和两个文件
【发布时间】:2017-12-21 20:57:07
【问题描述】:

我有一个调用函数的 PowerShell 脚本。我正在尝试完成所有这些,但不确定如何:

  1. 将 STDOUT 写入控制台和 out.txt
  2. 将 STDERR 写入控制台和 out.txt 和 err.txt
  3. 确保所有 STDOUT 和 STDERR 输出仍然按照其生成的顺序进行

这是我目前所拥有的,它将 STDOUT 和 STDERR 写入文件,但它并没有完成我需要的其余部分。

function doIt() {
    "hi"
    $test["a"]["b"]
    "bye"
}

doIt 2>&1 | Tee-Object out.txt

【问题讨论】:

  • $test 的值是多少?
  • $test 不存在。我把它放在那里是为了强制出错。

标签: powershell stdout stderr


【解决方案1】:

这样的事情可能会奏效:

function doIt() {
    [CmdletBinding()]
    Param()
    "hi"
    $test["a"]["b"]
    "bye"
}

doIt -ErrorVariable e 2>&1 | Tee-Object out.txt
$e > err.txt

不过,这将在第二步中写入错误文件。我认为您不能同时合并 和 不合并错误输出流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2019-09-03
    相关资源
    最近更新 更多