【问题标题】:Batch redirect stderr with other info使用其他信息批量重定向标准错误
【发布时间】:2018-03-04 13:47:06
【问题描述】:

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

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

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

有没有办法将异常之前的文件%%f附加到错误文件中,以获得类似这样的内容:

File a.txt
exception...

File b.txt
exception...

【问题讨论】:

    标签: windows batch-file stderr


    【解决方案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.
        )
    )
    

    【讨论】:

    • 是的,但这会将每个文件名添加到错误文件中。这就是我正在做的 atm,但如果可以实现,我更愿意将其更改为更好的东西
    • 我已经更新了我的答案,只为有错误的运行添加标题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 2018-08-12
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    相关资源
    最近更新 更多