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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mania
User
Beiträge: 7
Registriert: Montag 20. März 2006, 11:07
Wohnort: Hennef

Montag 3. April 2006, 13:39

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
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 3. April 2006, 14:56

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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Mania
User
Beiträge: 7
Registriert: Montag 20. März 2006, 11:07
Wohnort: Hennef

Montag 3. April 2006, 15:20

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
Antworten