Windows 上的 unbuffer 程序相当于什么?

2024-04-18

你好根据这个帖子 https://unix.stackexchange.com/a/25375, unbuffer通过伪终端 (pty) 连接到命令,这使得系统将其视为交互式进程,因此不使用任何 stdout 缓冲。

我想在 Windows 上使用这个功能。我可以知道相当于什么吗unbufferWindows 上的程序?谢谢。


我在这上面花了一些时间并且成功了。我在研究过程中发现了这个博客,并决定返回并提供我的解决方案,以节省下一个人的时间。我以访客身份回复一封虚假电子邮件,因此我不会进行互动,但不需要进一步的信息。

2012 年 7 月 18 日 19:41 Harry Johnston 写道:

“原则上,如果您知道需要多少数据,您可以使用控制台 API 函数创建一个控制台供应用程序写入,然后从控制台读取输出。但是您不能在 Java 中做到这一点,您需要编写一个 C 应用程序来为您完成此操作。”

事实是,已经有一个实用程序可以做到这一点。它的编写用途略有不同,但可以通过操纵来提供所需的结果。其预期目的是使 Windows 控制台应用程序能够与 Linux 风格的 tty 终端进行交互。它通过运行隐藏控制台并直接访问控制台缓冲区来实现此目的。如果你尝试使用它——你就会失败。我很幸运,发现这个实用程序有未记录的开关,这将允许它提供简单的无缓冲输出。如果没有这些开关,当尝试通过管道输出时,它会失败并出现错误 - 输出不是 tty。

该实用程序称为 winpty。你可以在这里得到它:

https://github.com/rprichard/winpty/releases https://github.com/rprichard/winpty/releases

这里提到了未记录的开关:

https://github.com/rprichard/winpty/issues/103 https://github.com/rprichard/winpty/issues/103

我用的是MSYS2版本。您需要 msys-2.0.dll 才能使用它。

只需运行:

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

-Xallow-non-tty,将允许管道输出

-Xplain,将删除添加的 Linux 终端转义码(或任何名称)

所需文件有:

winpty.exe
winpty-agent.exe
winpty.dll
msys-2.0.dll

winpty-debugserver.exe – 不需要

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上的 unbuffer 程序相当于什么? 的相关文章

  • 类似于eternity的C++对象持久化库

    我正在寻找一个 C 对象持久库来替换永恒图书馆 http sourceforge net projects eternity it 我已经用它制作了大约一天的原型 永恒图书馆的能力不足 我创建了一个与此类似的对象层次结构 我有一个std l
  • Qt + win32 + mingw 上的原生 Windows API 链接问题

    我正在尝试使用 mingw 工具集将本机 Windows API 与 Qt 结合使用 部分功能存在链接问题 会发生什么 这是 mingw 名称修改的错误吗 ifdef Q WS WIN HWND hwnd QWidget winId HDC
  • 创建另一个进程的 HWND 的子窗口? (例如屏幕保护程序预览)

    我正在用 Java 编写一个屏幕保护程序 它主要适用于 Windows 但我更希望它尽可能便携且实用 根据http support microsoft com kb 182383 http support microsoft com kb
  • 从 Get-ChildItem -Path 返回对象数组

    从 powershell 开始 ls R txt将按目录递归列出文件 或者更好 PS gt Get ChildItem Path C Test Name logs anotherfile txt Command txt CreateTest
  • RabbitMQ 管理插件窗口呈现为空白页面

    I have installed Erlang RabbitMQ and configured the management plugin as per the instructions on the website https www r
  • 构建 jar 后无法运行 exe

    我制作了一个简单的实用应用程序 其中我有一个要运行的exe文件 我通过使用它来运行 Runtime getRuntime exec this getClass getResource filename exe getPath 当我从 ide
  • 连接到 VPN 时 HttpClient.GetAsync 超时

    当系统不使用 VPN 时 C 4 5 2 框架 HttpClient GetAsync 方法在 Windows 10 上运行良好 连接 VPN 后 对同一地址的 HttpClient GetAsync 调用只会阻塞 直到超时 Edge 和
  • 如何在批处理文件中测试当前驱动器号?

    我正在尝试编写一个批处理文件 该文件获取运行批处理文件的驱动器号 并使用它的 IF 语句 例如如果字母是M 则会跳转到标签 mSection 这可能吗 您可以使用 d0 来获取驱动器号 像这样的东西 IF d0 M CALL mSectio
  • 如何使用 Windows 命令行环境查找和替换文件中的文本?

    我正在使用 Windows 命令行环境编写批处理文件脚本 并希望用另一个文件 例如 BAR 更改文件中某些文本 例如 FOO 的每次出现 最简单的方法是什么 有内置函数吗 这里的很多答案都帮助我指明了正确的方向 但是没有一个适合我 所以我发
  • Windows 服务器上的 .htaccess 文件

    我进行了研究 发现我的 htaccess 文件无法在我的新 Windows 服务器上运行 我发现我应该使用 web config 我尝试了一下 但没有任何效果 然后我发现我可以使用 htaccess 文件 但我必须将其命名为其他名称 例如
  • 如何使用 python 操作系统更改驱动器?

    我正在尝试更改当前目录C to Y 我试过 import os os chdir Y 但我不断收到错误消息 提示无法找到驱动器 本质上我正在寻找相当于 cd d cmd 中的命令 你确定吗Y 确实是有效的驱动器号吗 Try os chdir
  • C++ [Windows] 可执行文件所在文件夹的路径[重复]

    这个问题在这里已经有答案了 我需要访问一些文件fstream在我的 Windows 上的 C 应用程序中 这些文件都位于我的exe文件所在文件夹的子文件夹中 获取当前可执行文件的文件夹路径的最简单且更重要的 最安全的方法是什么 Use 获取
  • 从安全角度来看,在 Windows 中使用管道是否被认为是危险的?

    从安全角度来看 在 Windows 中使用管道是否被认为是危险的 管道在 Windows 中并不是一个特殊的安全风险 如果您担心安全性 请确保将管道上的安全描述符设置为适当的 DACL 如果您的使用要求管道开放供任何人连接 那么您必须将传入
  • 使用cmd打开包含多个空格的文件时出现问题

    我使用 java 调用下面的命令 这是java初始化 String fileName C temp A a txt String sCmd cmd c start fileName 这是我打印 sCmd 时得到的结果 cmd c start
  • 为什么 FindWindow 找到了 EnumChildWindows 找不到的窗口?

    我正在寻找一个类名称为 CLIPBRDWNDCLASS 的窗口 它可以在办公应用程序和其他应用程序中找到 如果我使用 FindWindow 或 FindWindowEx 我找到第一个具有此类的 HWND 但我想要all具有该类的窗口 因此我
  • 自动安排并执行 PHP 脚本

    我编写了一个 PHP 脚本 它生成一个包含数据库中所有表的 SQL 文件 我想要做的是每天或每 n 天执行这个脚本 我读过有关 cron 作业的内容 但我使用的是 Windows 如何在服务器上自动执行脚本 您需要添加计划任务来调用 URL
  • Windows、Emacs、Git Bash 和 shell 命令

    Windows 7 Emacs 24 3 1 git 1 8 1 msysgit 1 我的等效 emacs 文件中有以下内容 if equal system type windows nt progn setq explicit shell
  • 如何使用 Apache Arrow 在 Windows 上使用 C++ 编写 Parquet 格式的文件?

    我正在尝试使用 C 在 Windows 上编写 Parquet 文件 我按照我找到的说明进行操作here https github com apache arrow blob master docs source developers cp
  • 没有设备的设备驱动程序?

    我正在创建一个需要使用一些内核级模块的应用程序 为此我将应用程序分为 2 个 一个用户级程序和一个内核级程序 在阅读了有关设备驱动程序并浏览一些教程后 我有点困惑 是否可以存在没有任何特定设备与之关联的设备驱动程序 除了设备驱动程序 内核代
  • 绘制自定义 Windows 控件时出现问题

    我正在尝试使用 Windows 中的 uxTheme 库绘制自己的自定义控件 但我无法弄清楚为什么我的控件看起来不像常规 Windows 控件 据说 使用我正在使用的相同主题 上图显示了标准的 Windows ComboBox 顶部 和使用

随机推荐

  • bcrypt 的 .net 实现

    有谁知道 bcrypt 的良好实现吗 我知道这个问题之前已经被问过 但得到的回应很少 我有点不确定是否要选择谷歌中出现的实现 并且我认为在 System Security Cryptography 命名空间中使用 sha256 可能会更好
  • C++ 中的异步线程安全日志记录

    我正在寻找一种在我的 C 项目中进行异步和线程安全日志记录的方法 如果可能的话 到一个文件 我目前正在使用cerr and clog对于任务 但由于它们是同步的 因此每次记录某些内容时执行都会短暂暂停 这是一个图形相对较多的应用程序 所以这
  • 美汤元素如何添加元素

    如果我有这样的 bs4 元素 它被称为tab window uls 1 ul li b Cut b Sits low on the waist li li b Fit b Skinny through the leg li li b Leg
  • 使用 C++ 删除文本文件中重复行的内存有效方法

    使用 C 删除大型文本文件中的重复行的最有效内存方法是什么 让我澄清一下 我不是要求代码 只是最好的方法 不保证重复的行是相邻的 我意识到针对最小内存使用进行优化的方法会导致速度变慢 但这是我的限制 因为文件太大 我会对每一行进行散列 然后
  • 如何在xamarin表单中使用单选按钮

    创建注册页面 我需要从用户那里获取以下数据 名 姓 Username Email Password 出生日期 Gender 用户角色 对于最后两个参数 我无法找到如何在 Xamarin Forms 中使用单选按钮 以下是我的注册页面代码
  • C#:具有构造函数的泛型类型?

    我有以下 C 测试代码 class MyItem MyItem int a class MyContainer lt T gt where T MyItem new public void CreateItem T oItem new T
  • 如何在 ngFor 循环中创建变量?

    我试图找出如何在ngFor loop 我有一个这样的循环 td a href getBuild branch prod url getBuild branch prod status a td 您可以看到getBuild必须重复多次调用 在
  • setContentView 执行期间黑屏

    我有一个MainActivity 有时 当它加载时 我会观察到黑屏一秒钟 我测量了操作的时间onCreate方法 发现花费了超过一秒的时间setContentView R layout main screen 我更喜欢显示上一个屏幕 在我的
  • 检测新的网络连接(linux-server)及其在java中的状态

    java 有什么方法可以检测到我刚刚插入有线网络 并监控它的带宽吗 我正在使用linux 如果这很重要的话 为了简单起见并且不使用本机代码 您可以尝试使用java net 网络接口 http java sun com javase 6 do
  • SpriteKit - 获取最近的节点

    有没有办法获得距离节点最近的节点 我正要编写一个方法来迭代所有节点并计算距离等 但想知道是否有更好的方法 我有 30 个节点 需要距离这 30 个节点中的每一个最近的 2 个节点 如果有意义的话 从 iOS 10 开始 您可以使用空间分区功
  • 在调用 f:ajax 侦听器之前和之后执行 JavaScript

    有一种简单的方法可以在调用之前和之后调用 JavaScript 操作
  • 扩展方法的空目标

    public static IFoo Bar
  • Linq to NHibernate 生成到同一个表的多个联接

    当我在 select 和 where 子句中引用同一个表时 linq to Nhibernate 会生成两个连接 一个用于 select 一个用于 where IE from child in Session Query
  • 比较 Django 中的日期和日期时间

    我有一个带有日期时间字段的模型 class MyModel models Model created models DateTimeField auto now True 我想获取今天创建的所有记录 我试过 MyModel objects
  • window.console 可以被覆盖吗?它是只读的吗?

    我用consolejavascript 中的对象用于调试 并希望覆盖它以便在移动浏览器中使用此类功能 但是 我无法理解以下 MDN 文档 Window console 只读属性返回对 Console 对象 提供将信息记录到控制台的方法 浏览
  • 如何通过 SystemJs 在 Angular2 中使用时刻时区

    我正在使用 Angular2 通过Angular2 种子 https github com mgechev angular2 seed 使用 SystemJS 并尝试加载时刻时区 http momentjs com timezone doc
  • 使用片段共享过渡时返回过渡无法正常工作

    我有2个碎片ListMovieFragment and DetailMovieFragment 我有一个界面ListMovieFragment是在MainActivity 我正在使用共享元素转换 当我单击图像视图时ListMovieFrag
  • 有效地构建具有给定汉明距离的单词图

    我想从单词列表中构建一个图表汉明距离 https en wikipedia org wiki Hamming distance 比如说 1 或者换句话说 如果两个单词仅与一个字母不同 lol 假设您将字典存储在set 以便查找是O 1 平均
  • 在 Delphi 2009 中挂钩堆栈跟踪

    Delphi 2009 中的 Exception 类获得了许多新功能 其中许多与获取堆栈跟踪有关 property堆栈跟踪 string read获取堆栈跟踪 property堆栈信息 指针readFStackInfo 类变量获取异常堆栈信
  • Windows 上的 unbuffer 程序相当于什么?

    你好根据这个帖子 https unix stackexchange com a 25375 unbuffer通过伪终端 pty 连接到命令 这使得系统将其视为交互式进程 因此不使用任何 stdout 缓冲 我想在 Windows 上使用这个