具有重定向输出的批处理后台进程

dar*_*een 9 windows cmd batch-file

我正在尝试从批处理文件中运行多个后台进程,并将输出定向到文件.是否可以在Windows中执行此操作?这是我尝试过的,但最终导致启动程序的输出而不是后台进程.

start myapp.exe > myapp.out 2>&1
Run Code Online (Sandbox Code Playgroud)

dbe*_*ham 11

实际上,如果不使用帮助程序批处理文件,这很容易.您只需要通过cmd.exe运行应用程序,并确保转义特殊字符,以便它们传递给cmd.exe.

您可能不希望看到额外的控制台窗口,因此请使用START/B选项.

start /b "" cmd /c myapp.exe ^>myapp.out 2^>^&1
Run Code Online (Sandbox Code Playgroud)

每个STARTed进程必须将其输出定向到唯一文件.多个进程无法共享同一输出文件.


a_h*_*ame 6

我认为你唯一的机会是为你想要启动的每个exe创建一个批处理文件.在批处理文件中,您可以重定向输出.然后,主批处理文件将"启动"批处理文件,而不是直接执行exe.

您只需要exit在每个批处理文件的末尾包含一个命令:

start_myapp.cmd 包含以下内容:

myapp.exe > myapp.out 2>&1
exit
Run Code Online (Sandbox Code Playgroud)

然后你就可以跑了

start start_myapp.cmd 
Run Code Online (Sandbox Code Playgroud)

并且输出将被重定向