Windows 批处理中是否有用于设置无缓冲 stdout 和 stderr 的命令?

Windows 批处理中是否有用于设置无缓冲 stdout 和 stderr 的命令?

我想设置一个无缓冲 stdout 和 stderr 的命令。在 Unix 系统中,可以使用以下方法实现标准库-o0对于 Python 脚本,可以使用python-u 命令。Windows 批处理中的等效命令是什么?

答案1

Windows 没有通用的非缓冲模式。它只适用于控制台(终端)输出。

帖子 Windows 上的 unbuffer 程序相当于什么? 有一个可行的解决方案 这个答案

该解决方案使用开源 Github 项目 温普蒂,使用记录在 记录未记录的 -X 开关 #103

Winpty 的描述如下。它的编写目的略有不同,但可以提供所需的结果。

winpty 是一个 Windows 软件包,提供类似于 Unix pty-master 的接口,用于与 Windows 控制台程序进行通信。

使用方法如下:

winpty.exe -Xallow-non-tty -Xplain your_program.exe | receive_unbuffered_output.exe

开关位于:

  • -Xallow-non-tty- 允许管道输出
  • -Xplain- 删除添加的 Linux 终端转义代码。

(注意:我从未使用过 Winpty。)

相关内容