我正在尝试从批处理文件中运行多个后台进程,并将输出定向到文件。是否可以在Windows中执行此操作?这是我尝试过的,但它最终指向启动程序的输出而不是后台进程。
start myapp.exe > myapp.out 2>&1
答案 0 :(得分:11)
实际上,如果不使用帮助程序批处理文件,则非常容易。您只需要通过cmd.exe运行应用程序,并确保转义特殊字符,以便它们传递给cmd.exe。
您可能不希望看到额外的控制台窗口,因此请使用START / B选项。
start /b "" cmd /c myapp.exe ^>myapp.out 2^>^&1
每个STARTed进程必须将其输出定向到唯一文件。多个进程无法共享相同的输出文件。
答案 1 :(得分:6)
我认为你唯一的机会就是为你想要启动的每个exe创建一个批处理文件。在批处理文件中,您可以重定向输出。然后,主批处理文件将“启动”批处理文件,而不是直接执行exe文件。
您只需在每个批处理文件的末尾包含exit
命令:
start_myapp.cmd
包含以下内容:
myapp.exe > myapp.out 2>&1
exit
然后你可以运行
start start_myapp.cmd
,输出将被重定向