将STDERR重定向到控制台和两个文件



我有一个调用函数的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

类似的东西可能有效:

function doIt() {
    [CmdletBinding()]
    Param()
    "hi"
    $test["a"]["b"]
    "bye"
}
doIt -ErrorVariable e 2>&1 | Tee-Object out.txt
$e > err.txt

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

最新更新