我有一个 C# 控制台应用程序,只需键入 c 即可在控制台上运行和观看:
programName.exe
我也可以通过执行以下操作将其写入文件:
programName.exe > log.txt
但是,当我这样做时,我无法查看正在发生的输出。整个程序完成后,我只能查看日志文件。
我怎样才能同时做这两个?我想查看实时标准输出和标准错误,但仍写入该日志文件。有没有办法在不改变 c# 应用程序代码的情况下做到这一点?
我有一个 C# 控制台应用程序,只需键入 c 即可在控制台上运行和观看:
programName.exe
我也可以通过执行以下操作将其写入文件:
programName.exe > log.txt
但是,当我这样做时,我无法查看正在发生的输出。整个程序完成后,我只能查看日志文件。
我怎样才能同时做这两个?我想查看实时标准输出和标准错误,但仍写入该日志文件。有没有办法在不改变 c# 应用程序代码的情况下做到这一点?
如果您可以选择使用 Windows PowerShell,则可以使用以下Tee-Object
命令:
programName.exe | tee -file 'log.txt'
这会将标准输出同时重定向到控制台窗口和 log.txt。stdout
重定向两者的解决方法stderr
是:
programName.exe 2>&1 | tee -file 'log.txt'
您可能还会发现对这个类似问题的回答很有帮助
我不知道任何现有的命令可以做到这一点。
但是您可以编写一个简单的新程序来复制标准输入并将它们写入控制台和文件。希望这可以帮到你。