2016-09-21 2 views
0

ビルドの最後にログファイルがあり、ビルドしたプロジェクトのステータスを示します。このログファイルを使用して、 0バッチファイルを使用するとログファイルに応じた終了コードが返される

ログファイルに等しくない:

========== Build: 19 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 

どのように私は1が失敗した(またはそれ以上)、および= 1 %のERRORLEVEL%と設定されている場合は見ているバッチファイルを作成します。

答えて

2

テストされていない:少なくとも一つの故障があった場合、あなたがしたいすべてが成功すると0にERRORLEVELを設定し、1されている場合は

set "log=log.txt" 

for /f "tokens=5 delims= " %%# in ('find "========== Build:" "%log%" ') do set /a fails=%%# 

if %fails% neq 0 exit /b 1 
+2

失敗カウントをキャプチャするのは良いかもしれませんが、OPはそれを要求しませんでした。単純なバイナリの成功または失敗の検出が目標である場合、必要なのは単一のFINDSTRだけです。 – dbenham

2

、単純なFINDSTRが必要とされているすべてのです。

findstr /rc:"^========== Build: .* succeeded, 0 failed," "log.txt" >nul 

ERRORLEVELは、文字列が見つかった場合は0、そうでない場合は1になります。

あなたは条件付きで障害が発生した場合は、1のERRORLEVELと単純に終了する場合は、使用できるよう&&||オペレーター

findstr /rc:"^========== Build: .* succeeded, 0 failed," "log.txt" >nul && (
    rem Success actions go here 
) || (
    rem Failure actions go here 
) 

を使用して成功したか失敗したかに基づいて行動を取ることができます。

findstr /rc:"^========== Build: .* succeeded, 0 failed," "log.txt" >nul || exit /b 1 
+0

aahm.Yes findstrもっと高度な... – npocmaka

関連する問題