使用start命令时的批处理输出重定向

3

我需要一次性运行多次jar程序,并将输出重定向到不同的文件。所以我正在使用下面的批处理文件:

start java -jar app.jar > log1.out ;

start java -jar app.jar > log2.out ;

start java -jar app.jar > log3.out ;

pause

这个批处理程序会启动三个并行的实例。但是输出没有被重定向到文件,只显示在控制台上。

谢谢提前。

3个回答

4

使用此功能进行重定向

start cmd /c java -jar app.jar ^> log1.out 

不要忘记^。 在此处它被用作转义字符。 如果没有^>将被视为重定向到start而不是java

2
start cmd /c java -jar app.jar ^> log1.out  ^2^>^&1

将标准错误输出重定向到与标准输出相同的位置

start cmd /k java -jar app.jar ^> log1.out  ^2^>^&1

/k命令将保持窗口打开,让您调试尝试使其正常工作的过程。

看起来数字2前面的符号“^”是可选的,即使没有它也能正常工作。 - John29

1

尝试使用/b将命令在后台运行,具体如下:

start /b java -jar app.jar > log1.out ;
start /b java -jar app.jar > log2.out ;
start /b java -jar app.jar > log3.out ;

(/wait标志也可以用来避免并行处理,这也是一个有趣的应用。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接