我想执行某个批处理文件,并将其控制台输出重定向到visual C++中的文本控件,或者在显示日志/回显的同时重定向控制台输出。重定向exe文件批处理文件的输出
1
A
回答
4
基本上,您必须让运行过程写入管道,并读取此管道的输出。我知道SciTE如何做到这一点(你可以看看源码:win32/SciTEWin.cxx,ExecuteOne函数),我搜索了一个稍微更通用的方式,发现微软自己的How to spawn console processes with redirected standard handles。
如果您查找CreatePipe PeekNamedPipe CreateProcess关键字,例如,您可能会发现其他示例。
0
如果优雅不是一个优先事项,那么一个非常简单的解决方案可能是将输出重定向到一个文件,然后读取文件内容。
1
另一个选择是使用Boost.Process(Boost.Process不是(官方的)Boost C++库,它必须单独下载和安装)。
示例“Child.4 - Reading from a child using asynchronous I/O”显示如何将子进程的输出重定向到C++流(并稍后访问内容)。
实施例 “Child.4 - Reading from a child using asynchronous I/O” 显示了如何使用togehter与Boost.Process Boost.Asio访问孩子的I/O异步。
该方法的优点是,Boost.Process支持Windows API和POSIX API。
相关问题
- 1. 将批处理脚本中的.exe输出重定向到txt文件
- 2. 重定向批处理文件脚本输出
- 3. Windows批处理文件 - 自动FTP,输出重定向问题
- 4. Windows批处理文件重定向输出
- 5. 从批处理文件中重定向标准输出和stderr
- 6. 从批处理文件重定向输出,包括命令
- 7. 批处理文件输出
- 8. 我们可以将批处理文件的输出重定向到pdf文件
- 9. 如何将批处理文件的输出重定向到另一个批处理文件?
- 10. 批处理文件 - 将命令和输出重定向到一个文件
- 11. 在批处理文件中将输出重定向到文件需要关闭? (批处理脚本)
- 12. 批处理文件 - 检查exe的输出
- 13. 重定向输出已重定向的批处理文件中命令的输出?
- 14. 批处理文件重命名输出文件夹
- 15. 将EXE输出写入批处理文件
- 16. 批处理文件输出的Unicode
- 17. 将第二个exe的输出重定向到文本文件
- 18. 自定义输出文件名从管道批处理文件
- 19. 在批处理文件中将未知结果的输出重定向到
- 20. 是否可以在脚本中重定向批处理文件的输出?
- 21. 将从批处理文件调用的bash输出重定向到控制台
- 22. 批处理脚本输出到文件
- 23. TortoiseSVN批处理文件输出信息
- 24. EXE在批处理文件引用
- 25. 从批处理文件中执行.exe
- 26. 从powershell中调用批处理文件(其中批处理文件调用.exe)
- 27. 批处理文件被应用程序执行时重定向命令输出
- 28. 批处理文件:输出重定向后触发安装程序
- 29. 如何在后台启动批处理文件并重定向其输出?
- 30. 批处理文件重命名文件