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

use*_*397 36 windows command-line stdout

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

myProgram.exe > mylog.txt
Run Code Online (Sandbox Code Playgroud)

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

有没有办法做到这一点?我正在考虑使用tail来监视日志文件。

les*_*ana 23

Windows PowerShell有一个工具可以做到这一点,tee它以执行相同操作的 unix 工具命名。

或者,有tee适用于 Windows的 unix 端口:

  • powershell 是一个很好的提示,可能是 cmd 仅适用于尚未继续前进的人!使用 gnuwin32 比使用 unxutils 好,unxutils 已经很老了。gnuwin32 较新,可能也包含 unxutils 中的所有内容,并且具有更多实用程序。正如其他地方提到的,gnuwin32 coreutils 有 tee (3认同)

Gaf*_*aff 10

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

myProgram.exe > mylog.txt & type mylog.txt
Run Code Online (Sandbox Code Playgroud)

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

如果您下载GnuWin32 CoreUtils,则可以使用 Unix 方法(tee命令)来执行此操作:

myProgram.exe | tee mylog.txt
Run Code Online (Sandbox Code Playgroud)

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

  • 三通解决方案看起来好多了。你提到的另一件事不是同时发生的。 (3认同)