Windows:命令行重定向到文本文件,同时查看输出

Windows:命令行重定向到文本文件,同时查看输出

我正在 Windows 中编写一个 C 程序,我的 printf 调用打印到命令行,并且我知道我可以使用以下方法将所有这些输出重定向到文本文件:

myProgram.exe > mylog.txt

但是,我还希望看到打印到控制台的输出并将其全部记录在文本文件中。

有办法吗?我正在考虑使用 tail 来监视日志文件。

答案1

窗户电源外壳有一个可以做到这一点的工具,名为tee在执行相同操作的 unix 工具之后。

另外,还有适用于 Windows 的 Unix 移植版tee

答案2

在 Windows 下我能想到的就是这样做:

myProgram.exe > mylog.txt & type mylog.txt

这是基于您问题中的命令示例 - 如果您实际上想要将输出附加到,mylog.txt那么您需要使用>>而不是>,但type会打印出整个日志文件,而不仅仅是附加的内容。

如果你下载GnuWin32 核心实用程序,您可以使用 Unix 方法(tee命令)来执行此操作:

myProgram.exe | tee mylog.txt

这会将 myProgram.exe 的输出写入,mylog.txt同时还会将其显示到控制台。如果您只想附加到,mylog.txt则可以将-a参数传递给 tee。

答案3

我用Visual Studio 代码并从那里打开日志文件,它会随着日志文件的变化而实时地更新视图

答案4

我刚好有类似的需求,并且按照 OP 的建议使用了 Tail:

>C:\Temp\Commands_Log.txt (
START tail.exe -f C:\Temp\Commands_Log.txt

Some_Commands
Other_Commands

echo.
echo ALL DONE HERE!
echo.
echo IT IS NOW SAFE TO CLOSE THIS WINDOW!
)

“>C:\Temp\Commands_Log.txt” 创建日志文件并添加位于(括号)内的所有命令的输出。

括号内的第一个命令应该是启动 Tail,它将在一个新的命令窗口中打开。

最后的回声是为了让不熟悉的用户知道一切何时完成。

相关内容