我想设置一个无缓冲 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。)