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

问题描述 投票:1回答:1

我有一个调用函数的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
powershell stdout stderr
1个回答
2
投票

像这样的东西可能会起作用:

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

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

但是,这将在第二步中写入错误文件。我不认为你可以同时合并和不合并错误输出流。

© www.soinside.com 2019 - 2024. All rights reserved.