2011-09-15 56 views
8

我试图从一个批处理文件运行多个后台进程,并有指向一个文件的输出。有没有可能在Windows中做到这一点?这是我做过尝试,但它最终会引导启动程序的输出而不是后台进程。后台进程与重定向输出

start myapp.exe > myapp.out 2>&1 
+1

顺便说一句,这是*不* DOS。 –

回答

6

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

你只需要包括在每一个批处理文件的最后一个exit命令:

start_myapp.cmd包含以下内容:

myapp.exe > myapp.out 2>&1 
exit 

,那么你可以运行

start start_myapp.cmd 

和输出将被重定向

+0

+1,你的回答比我快10秒... – jeb

+0

其实你不需要帮助文件:-)看[我的回答](http://stackoverflow.com/a/11712561/1012053) – dbenham

9

其实这没有使用帮助器批处理文件很容易。你只需要通过运行cmd.exe的应用程序,而不是,并确保让他们通过到CMD.EXE逃跑的特殊字符。

你可能不希望看到一个额外的控制台窗口,所以使用START/B选项。

start /b "" cmd /c myapp.exe ^>myapp.out 2^>^&1 

每个开始的进程必须将其输出定向到唯一文件。多个进程不能共享相同的输出文件。

相关问题