2016-04-07 4 views
1

Ich rufe eine Bat-Datei von Jenkins, in Windows Batch-Befehlsblock ausführen.Jenkins Job wird als Fehlgeschlagen markiert, obwohl es keine Fehler in der Ausführung der Bat-Datei gibt

Im Folgenden finden Sie die Befehle in diesem Block.

setlocal enabledelayedexpansion set PATH=C:\OracleATS\openScript;%PATH% cd C:\OracleATS\openScript call runScript.bat D:\Sanity\credit_card.jwg -batchId 235 echo "done"

Nach „fertig“ auf der Konsole gedruckt wird, wird der Auftragsstatus als fehlgeschlagen markiert, auch wenn es keine Fehler gibt, während die Datei Batch ausgeführt wird.

Kann mir bitte jemand helfen?

+0

Erfahren Sie, wie Sie Code richtig formatieren! es ist nicht lesbar, wie Sie es gepostet ... – aschipfl

Antwort

2

Jenkins wertet die Variable ERRORLEVEL für Erfolg/Fehler bei Batch-Jobs aus. ERRORLEVEL enthält den Returncode letzten Befehlslauf.

Das bedeutet, wenn Sie echte Fehler fangen wollen, müssen Sie die Fehlerbehandlung selbst im Stapel implementieren, denn ohne - nur der Erfolg/Fehler des letzten Befehls wird von Jenkins ausgewertet und es könnte gültig sein Rückkehrcodes > 0 welche jenkins zum Scheitern auswertet.

versuchen Sie echo Errorlevel: %ERRORLEVEL% zu sehen, was Sie am Ende haben. Sie können set ERRORLEVEL=0 tun, um den Job immer erfolgreich zu haben, jedoch wäre die beste Vorgehensweise die richtige Fehlerbehandlung.

+0

das Echo zeigt Wert als 1. aber es gibt keine Fehler in der Bat-Dateiausführung. Was könnte der Grund für Fehlerlevel 1 sein? –

+0

versuchen Sie 'Exit 0' zu verwenden, wenn Ihre' runScript.bat' erfolgreich beendet wird. –

Verwandte Themen