我想执行某个批处理文件,并将其控制台输出重定向到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. Windows批处理文件 - 自动FTP,输出重定向问题
- 2. 重定向批处理文件脚本输出
- 3. Windows批处理文件重定向输出
- 4. 我们可以将批处理文件的输出重定向到pdf文件
- 5. 在批处理文件中将输出重定向到文件需要关闭? (批处理脚本)
- 6. 重定向输出已重定向的批处理文件中命令的输出?
- 7. 批处理文件输出的Unicode
- 8. 是否可以在脚本中重定向批处理文件的输出?
- 9. 批处理脚本 - 重定向 - 可能的文件锁定?
- 10. 重定向输出到输出文件
- 11. 调整批处理文件输出到文本文件
- 12. 如何控制批处理文件中的输出文件名?
- 13. 批处理文件执行文件夹中的所有.exe
- 14. 批处理文件:使用变量指定重定向位置
- 15. 为什么我的批处理文件没有错误输出从STDERR重定向到文件?
- 16. 将子批处理文件输出写入为父批处理文件创建的日志文件
- 17. 批处理文件文件输出,字符串操作
- 18. 将批处理文件输出到文件
- 19. 批处理文件重命名给定目录中的文件
- 20. 如何从批处理文件中隐藏exe文件?
- 21. 批处理文件: - 检测Windows版本和运行exe文件
- 22. 与批处理文件复制EXE文件
- 23. 编译后批处理文件exe文件停止工作
- 24. 执行TXT文件到一个EXE文件由Windows批处理
- 25. 通过批处理文件运行Portable Exe文件
- 26. 批处理列出不包含特定文件的文件夹
- 27. 在批处理文件重定向环境变量
- 28. Linux中的文件输出重定向
- 29. 重定向grep的输出到文件
- 30. 批处理文件重命名文件夹中的文件