gpt4 book ai didi

windows - 具有不可重定向输出的实用程序 (Windows)

转载 作者:可可西里 更新时间:2023-11-01 13:47:11 26 4
gpt4 key购买 nike

我正在使用 Microsoft 命令行实用程序来执行任务。我认为实用程序的具体细节及其执行的任务相对不重要。这是重要的:

命令行实用程序将文本发送到控制台窗口。我无法弄清楚如何将此文本重定向到文件,尽管我已经尝试了通过研究可以找到的所有方法。该实用程序似乎使用了一些奇怪的操作系统函数调用,导致文本以不受正常重定向方式影响的方式打印。我正在使用 Windows 7 cmd.exe 控制台窗口。

这些构造都没有重定向有问题的文本输出:

util.exe >log.txt
util.exe 2>err.txt
util.exe >log.txt 2>&1
util.exe 1>log.txt 2>err.txt
util.exe 1>log.txt 2>err.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt 9>9.txt

对最后一个感到困惑? Turns out there are 10 output streams in Windows-land ,但这也没有完成工作。

我可以使用控制台窗口的编辑>标记选择和复制功能复制文本,但我需要以 headless 方式捕获该程序的输出,以便它可以自动化。

我找不到任何专门绕过重定向打印到控制台的操作系统函数调用。有这样的功能吗?该实用程序如何设法规避重定向?我可以使用什么方法来捕获此实用程序的输出?

我也试过 DbgView,想也许它可能包含输出消息,但它没有。

该实用程序不是图形实用程序。它很明显是一个文本模式程序,可能是用 C 或 C++ 编写的。它是由 Microsoft 编写的。

最佳答案

没有什么特别神奇的地方。尽管 C 库默认将输出发送到标准输出句柄,但程序没有义务这样做;您始终可以打开自己的控制台输出设备句柄 (CONOUT$)。

请参阅 CreateFile 上的文档有关控制台设备的更多信息。

在捕获输出方面,您可以使用 ReadConsoleOutput 做一些事情和 friend ,但这并不简单。

关于windows - 具有不可重定向输出的实用程序 (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com