powershell-将stdout和stderr捕获到文件中,同时还将它们保留在终端中

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

我有一个脚本,该脚本通过Write-Output和Write-Error进行记录,并调用许多其他脚本和可执行文件。当我直接运行它时,我对在终端中看到的内容感到满意。但是我想另外捕获两个流到两个单独的文件,同时保持终端的行为。

这很接近,但是终端没有显示stderr:

& .\main.ps1 2> stderr.log | Tee-Object -FilePath stdout.log

我已经考虑过将其作为后台任务运行,但是我担心我会很容易失去Ctrl-C的功能。我的工作将被许多工程师使用,所以我不想介绍意外的行为。

powershell redirect terminal stdout stderr
1个回答
0
投票

如果可以忍受这样的事实,两个流都集中在一个文件中(基本上像终端中的视图一样,这将达到目的:

& .\main.ps1 2>&1 | Tee-Object -FilePath stdout_and_stderr.log

像以前一样将stderr重定向到stdout并将其通过管道传输到Tee-Object

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