如果我使用start命令从cmd提示符创建进程(打开一个新的cmd),是否可以将stdout和stderr从该进程重定向回调用cmd?
答案 0 :(得分:3)
如果您希望STARTed进程的输出显示在父命令控制台中,则只需使用START /B
选项。
如果要处理命令的输出,则应使用FOR /F ... in ('someCommand') DO ...
代替。
答案 1 :(得分:0)
行。我还没有找到这个问题的直截了当的答案。我不想用我认为不必要的细节来掩盖我的问题,但看到我因为缺乏这个而受到批评,我会在这里扩展一下。
我想在我们的生产线上自动更新FW,所以我有一个python应用程序从ftp获取FW,然后使用处理器flash工具通过python subprocess命令将其上传到主板的flash。除了其中一个工具外,其他所有工具都可以。
当一个工具没有在自己的终端中运行时似乎有问题,所以我提供了一个子进程命令字符串的开始,它允许它在自己的终端中运行OK。但是,出于记录原因,我需要来自其他终端的输出。
一种可能的解决方案是使用>>将stdout和stderr记录到文件中或wintee,然后通过我原来的应用程序中的一个线程轮询此文件(可能是一个相当复杂的问题解决方案)。但是,该工具还有一个单独的问题,它不喜欢任何std重定向,所以这对我不起作用。