使用其他信息批量重定向 stderr

Batch redirect stderr with other info

我需要在多个文件上启动一个 jar 文件(我没有它的源代码,所以我无法修改它)。代码如下所示:

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

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

有没有办法将异常前的文件 %%f 也附加到错误文件中,从而得到如下内容:

File a.txt
exception...

File b.txt
exception...

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

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.
    )
)