如何解决为什么我不能重定向由另一个批处理调用的批处理文件运行的程序的标准输出/错误?
如果我有这批:
ScriptA.bat
someprog.exe
还有这个:
ScriptB.bat
CALL ScriptA.bat
然后我执行如下命令:
ScriptB.bat > test.log
someprog.exe
的输出未记录。它流经控制台。如何避免将 someprog.exe
的输出通过管道显式传送到文件,而只是从更高级别捕获它?
(请注意,我最终希望使用大量脚本从这些嵌套内部启动各种 exe,我无法对它们进行全部编辑以重定向它们调用的每个子进程的输出)。
解决方法
我在另一个 SO 线程上找到了答案:
https://stackoverflow.com/a/11955380/3220983
如果阅读问题下的评论,您就会看到,我遇到的问题是我无法捕获的消息根本没有通过管道传输到 stdout 或 stderr!他们通过类似于 CON
重定向的方式从我试图使用的特定可执行文件中直接进入控制台。
我发布的链接显示了如何从批处理脚本启动 PowerShell 脚本,该脚本捕获整个控制台窗口内容,包括 CON
输出!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。