Seite 1 von 1
Frage zu Ausführen Batchdatei mit os.system()
Verfasst: Donnerstag 6. April 2006, 16:05
von pereh
Hallo, ich kenne Python bisher nur aus dem Lesen der Doku, jetzt habe ich mit meinem 1. Programm ein Problem: das Script läuft unter Win2003, soll u.a. eine Batchdatei ausführen (Testprog.bat), auf deren Ende warten und einen Rcode liefern. Der Aufruf os.system('<pfad>\Testprog.bat') scheint aber keine Auswirkung zu haben, das Script läuft darüber weg, das Batchfile wird aber nicht ausgeführt. Wo könnte da der Haken sein?
Verfasst: Donnerstag 6. April 2006, 16:16
von N317V
So spontan fällt mir ein: versuch mal sämtliche Backslashes im Pfad per Backslash zu maskieren, also \\ statt \
Verfasst: Donnerstag 6. April 2006, 16:20
von Python 47
Daran dürfte es nicht liegen, da Python mit dem befehl os.sytem() cmd anspricht und cmd nur ein \ verwendet!
Verfasst: Donnerstag 6. April 2006, 16:27
von pereh
Hallo, danke für die schnelle Antwort. Leider hat es nicht funktioniert. Das Batchfile enthält übrigens bisher nur 'mkdir test', also nichts schweres...
Verfasst: Donnerstag 6. April 2006, 22:26
von BlackJack
Python Master 47 hat geschrieben:Daran dürfte es nicht liegen, da Python mit dem befehl os.sytem() cmd anspricht und cmd nur ein \ verwendet!
Der \ hat in Python-Zeichenketten eine besondere Bedeutung. '\n' ist zum Beispiel ein Zeilenende-Zeichen. Wenn Du wirklich einen Backslash gefolgt von einem 'n' als Zeichenkette im Programm angeben willst, dann musst Du '\\n' schreiben.
Verfasst: Freitag 7. April 2006, 11:34
von pereh
Hallo, ich habe jetzt den Aufruf inkl. Pfad als Eingabevariable gesetzt und schon funktioniert der os.system-Aufruf... Wahrscheinlich wird mir der Fehler klarar, wenn ich mal mehr Python kann. Vielen Dankfür die Hilfe.