批量重定向stderr与其他信息

时间:2017-09-22 22:10:43

标签: windows batch-file stderr

我需要在多个文件上启动一个jar文件(我没有源文件,因此我无法对其进行修改)。代码如下所示:

for %%f in (%inputFolder%*) do ( 
    java -jar MyJar.jar %%f 2>>%errorFile%
)

现在的问题是,如果MyJar.jar以多个文件的异常结束,在错误文件中我只能看到一堆异常,而无法识别导致它们的文件。

有没有办法在异常之前将错误文件追加到文件%%f,这样就可以了:

File a.txt
exception...

File b.txt
exception...

1 个答案:

答案 0 :(得分:1)

您可以先将错误输出到单独的文件中,然后检查它是否包含任何内容:

for %%f in (%inputFolder%*) do ( 
    del tmp.err
    set has_err=
    java -jar MyJar.jar %%f 2>> tmp.err
    set /p has_err=<tmp.err
    if defined has_err (
        echo %%f >> %errorFile%
        echo.-------------------------------
        type tmp.err >> %errorFile%
        echo.
    )
)