2017-09-22 79 views
0

我需要啓動一個jar文件(其中我沒有源,所以我不能修改它)在多個文件。代碼如下所示:批量重定向stderr與其他信息

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

現在的問題是,如果MyJar.jar與多個文件異常結束,在錯誤的文件,我只能看到一堆異常,而不能識別這引起了文件他們。

有沒有辦法將追加到錯誤文件也異常之前的文件%%f,能有這樣的事情:

File a.txt 
exception... 

File b.txt 
exception... 

回答

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

是的,但這會將每個文件名添加到錯誤文件中。這是我在做atm,但我寧願將它改爲更好的,如果它是可以容忍的 –

+0

我已經更新了我的答案,只爲有錯誤的運行添加標題。 – thebjorn