Seite 1 von 1

return Wert von Python Script in Bat Datei abfangen (Win)

Verfasst: Montag 3. April 2006, 13:39
von Mania
Hallo.

ich habe bestimmt eine absolut blöde Frage aber ich komme einfach nicht weiter.
Ich habe ein Python-Script geschrieben der vom pre-commit.bat aufgerufen wird.
Ich versuche Fehlerfälle zu testen um zu sehen ob es gut reagiert.
Der Python Script läuft wie erwartet, und spuckt den entsprechenden return Wert (1 bei Fehler, 0 wenn es ok ist).
Ich kann aber in dem Bat diesen Fehlercode nicht abfangen.
Ich habe zuerst versucht mit:
if not e:\svn\hook\pre-commit-check.py %REPOS% %TXN% == 0 goto Error2
aber da streikt schon mal den Commander
Dann
e:\svn\hook\pre-commit-check.py %REPOS% %TXN%
und errorlevel abtesten.
Der bleibt aber immer 0, egal ob der ausgang aus Python mit Return x oder mit exit(x) erzeugt wird.

dann habe ich noch versucht mit
set /a RES = e:\svn\hook\pre-commit-check.py %REPOS% %TXN%
und dann %RES% testen aber da wird der Python script erst gar nicht aufgerufen.
Ich habe noch gesurft und gesucht aber nichts gefunden.

Bitte helft mir, auch wenn meine Frage bestimmt vom unterem Niveau ist.

Gruß

Mania

Verfasst: Montag 3. April 2006, 14:56
von jens
Der Error-Level steht mit %ERRORLEVEL% in einer Variablen zur verfügung. Such mal auf der Seite danach: http://www.admini.de/batch-infos.htm

Ausgaben von einem Programm kann man auf zwei verschiedene Arten machen. Direkt oder über einer Temp-Datei.
Ein Beispiel findest du hier:
http://de.wikibooks.org/wiki/Batch-Prog ... st_Abfrage

Aber beschreib doch mal ehr, was die Batch-Datei überhaupt machen soll. Denn ich denke, das du das besser direkt in Python erledigen kannst. Mittels subprocess ( http://wiki.python.de/Neue_Features#Subprocess ) kannst du "DOS" Programme starten und die Ausgaben verabrieten...

Verfasst: Montag 3. April 2006, 15:20
von Mania
Hallo Jens,

dein Link mit den Batch Infos ist super. Alles drin was ich brauche und hat auch geklappt (ist sofort in meine Favoriten eingeflossen...).
Ich hatte ein Batch-Kurs in Pdf format, dass aber nur Verwierrung gebracht hat.
Ich musste unbedingt den Python script aus einem Bat starten und da den Fehlerfall weitergeben weil es fest verdrahtet ist.

Danke & Gruß

Mania